From a979c4d6ee04f7e7547309eeb8ad134caf49c418 Mon Sep 17 00:00:00 2001 From: Renato Byrro Date: Fri, 31 Oct 2025 18:20:48 -0300 Subject: [PATCH] Hubspot Marketing & CRM starter tools (#667) --- docker/toolkits.txt | 2 + .../hubspot_crm_api/.pre-commit-config.yaml | 18 + toolkits/hubspot_crm_api/.ruff.toml | 44 + toolkits/hubspot_crm_api/LICENSE | 21 + toolkits/hubspot_crm_api/Makefile | 54 + .../arcade_hubspot_crm_api/__init__.py | 0 .../moar/hubspot_crm.json | 89365 ++++++ .../arcade_hubspot_crm_api/moar/openapi.json | 231151 +++++++++++++++ .../arcade_hubspot_crm_api/tools/__init__.py | 42308 +++ .../tools/request_body_schemas.py | 284 + ...AddAllFromSourceListToDestinationList.json | 144 + .../wrapper_tools/AddToHubspotCrmList.json | 144 + .../wrapper_tools/ArchiveCallInHubspot.json | 109 + .../wrapper_tools/ArchiveCallsBatch.json | 145 + .../wrapper_tools/ArchiveCartsBatch.json | 145 + .../ArchiveCommercePaymentsBatch.json | 145 + .../wrapper_tools/ArchiveCommunication.json | 109 + .../wrapper_tools/ArchiveContactsBatch.json | 145 + .../wrapper_tools/ArchiveCoursesBatch.json | 145 + .../wrapper_tools/ArchiveCrmProperties.json | 198 + .../wrapper_tools/ArchiveDealInHubspot.json | 109 + .../wrapper_tools/ArchiveDiscountsBatch.json | 145 + .../wrapper_tools/ArchiveEmailsBatch.json | 145 + .../wrapper_tools/ArchiveFeesBatch.json | 145 + .../ArchiveGoalTargetsBatch.json | 145 + .../wrapper_tools/ArchiveHubspotLead.json | 109 + .../ArchiveHubspotObjectsBatch.json | 243 + .../wrapper_tools/ArchiveHubspotTasks.json | 145 + .../wrapper_tools/ArchiveInvoicesBatch.json | 145 + .../wrapper_tools/ArchiveLeadsBatch.json | 145 + .../wrapper_tools/ArchiveLineItemsBatch.json | 145 + .../wrapper_tools/ArchiveMeetingsBatch.json | 145 + .../ArchiveMultipleAppointments.json | 243 + .../wrapper_tools/ArchiveMultipleDeals.json | 145 + .../ArchiveMultipleListings.json | 145 + .../wrapper_tools/ArchiveNotesBatch.json | 145 + .../wrapper_tools/ArchiveOrdersBatch.json | 145 + .../wrapper_tools/ArchivePostalMail.json | 109 + .../wrapper_tools/ArchivePostalMailBatch.json | 145 + .../wrapper_tools/ArchiveProductsBatch.json | 145 + .../wrapper_tools/ArchiveQuote.json | 109 + .../wrapper_tools/ArchiveQuotesBatch.json | 145 + .../wrapper_tools/ArchiveServicesBatch.json | 145 + .../ArchiveSubscriptionsBatch.json | 210 + .../wrapper_tools/ArchiveTaxBatch.json | 145 + .../wrapper_tools/ArchiveUsersBatch.json | 145 + .../AssociatePartnerClientWithObject.json | 208 + .../AssociatePartnerService.json | 208 + .../BatchCreateTimelineEvents.json | 386 + .../wrapper_tools/BatchReadAssociations.json | 275 + .../wrapper_tools/BatchReadContacts.json | 226 + .../BatchReadPartnerClients.json | 226 + .../BatchRetrieveHubspotRecords.json | 324 + .../wrapper_tools/BatchUpdateNotes.json | 193 + .../wrapper_tools/BatchUpsertRecords.json | 193 + .../CreateBatchAppointments.json | 369 + .../CreateBatchAssociationsHubspot.json | 343 + .../CreateBatchCommercePayments.json | 271 + .../wrapper_tools/CreateBatchContacts.json | 255 + .../CreateBatchDiscountsHubspot.json | 271 + .../wrapper_tools/CreateBatchFees.json | 271 + .../wrapper_tools/CreateBatchMeetings.json | 271 + .../wrapper_tools/CreateBatchOfCalls.json | 271 + .../wrapper_tools/CreateBatchOfCarts.json | 271 + .../wrapper_tools/CreateBatchOfCompanies.json | 271 + .../wrapper_tools/CreateBatchOfCourses.json | 271 + .../wrapper_tools/CreateBatchOfEmails.json | 271 + .../wrapper_tools/CreateBatchOfInvoices.json | 271 + .../wrapper_tools/CreateBatchOfNotes.json | 271 + .../wrapper_tools/CreateBatchOfProducts.json | 271 + .../wrapper_tools/CreateBatchOfQuotes.json | 271 + .../wrapper_tools/CreateBatchOfServices.json | 271 + .../wrapper_tools/CreateBatchOrders.json | 271 + .../wrapper_tools/CreateBatchProperties.json | 554 + .../CreateBatchSubscriptions.json | 336 + .../wrapper_tools/CreateBatchTasks.json | 271 + .../wrapper_tools/CreateBatchTickets.json | 271 + .../wrapper_tools/CreateCartHubspotCrm.json | 237 + .../wrapper_tools/CreateCommercePayment.json | 237 + .../wrapper_tools/CreateCompanyHubspot.json | 237 + .../wrapper_tools/CreateCrmAppointment.json | 335 + .../wrapper_tools/CreateCrmObject.json | 335 + .../CreateCrmObjectAssociation.json | 208 + .../wrapper_tools/CreateCrmObjectSchema.json | 697 + .../wrapper_tools/CreateCrmPipeline.json | 262 + .../wrapper_tools/CreateCrmUser.json | 237 + .../wrapper_tools/CreateDiscount.json | 237 + .../wrapper_tools/CreateFeeInCrm.json | 237 + .../wrapper_tools/CreateFolderHubspotCrm.json | 144 + .../wrapper_tools/CreateGoalTarget.json | 237 + .../wrapper_tools/CreateGoalTargetsBatch.json | 271 + .../wrapper_tools/CreateHubspotCall.json | 237 + .../CreateHubspotCommunication.json | 237 + .../wrapper_tools/CreateHubspotContact.json | 237 + .../wrapper_tools/CreateHubspotCourse.json | 237 + .../CreateHubspotCrmProperty.json | 536 + .../wrapper_tools/CreateHubspotDeal.json | 237 + .../wrapper_tools/CreateHubspotEmail.json | 237 + .../wrapper_tools/CreateHubspotInvoice.json | 237 + .../wrapper_tools/CreateHubspotLineItem.json | 237 + .../wrapper_tools/CreateHubspotListing.json | 237 + .../wrapper_tools/CreateHubspotMeeting.json | 237 + .../CreateHubspotMessagesBatch.json | 271 + .../CreateHubspotObjectsBatch.json | 369 + .../wrapper_tools/CreateHubspotOrder.json | 237 + .../wrapper_tools/CreateHubspotQuote.json | 237 + .../wrapper_tools/CreateHubspotTax.json | 237 + .../wrapper_tools/CreateLeadHubspot.json | 237 + .../wrapper_tools/CreateLeadsBatch.json | 271 + .../wrapper_tools/CreateLineItemsBatch.json | 271 + .../wrapper_tools/CreateMultipleDeals.json | 271 + .../wrapper_tools/CreateMultipleListings.json | 271 + .../wrapper_tools/CreateNoteInHubspot.json | 237 + .../CreateObjectAssociation.json | 306 + .../CreateOrUpdateBatchRecords.json | 193 + .../CreateOrUpdateCompanies.json | 193 + .../CreateOrUpdateHubspotEmails.json | 193 + .../CreateOrUpdateHubspotRecords.json | 193 + .../wrapper_tools/CreateOrUpdateQuotes.json | 193 + .../CreateOrUpdateTaxRecords.json | 193 + .../wrapper_tools/CreatePipelineStage.json | 245 + .../wrapper_tools/CreatePostalMailBatch.json | 271 + .../wrapper_tools/CreatePostalMailObject.json | 237 + .../wrapper_tools/CreateProductInHubspot.json | 237 + .../wrapper_tools/CreatePropertyGroup.json | 228 + .../wrapper_tools/CreateServiceRecord.json | 237 + .../wrapper_tools/CreateSubscription.json | 302 + .../wrapper_tools/CreateTaskInCrm.json | 237 + .../wrapper_tools/CreateTaxBatch.json | 271 + .../wrapper_tools/CreateTicket.json | 237 + .../wrapper_tools/CreateUsersBatch.json | 271 + .../wrapper_tools/DeleteBatchMessages.json | 145 + .../wrapper_tools/DeleteCallTranscript.json | 109 + .../wrapper_tools/DeleteCommercePayment.json | 109 + .../wrapper_tools/DeleteCompaniesBatch.json | 145 + .../wrapper_tools/DeleteCompany.json | 109 + .../wrapper_tools/DeleteContact.json | 109 + .../wrapper_tools/DeleteCourse.json | 109 + .../wrapper_tools/DeleteCrmAssociation.json | 142 + .../wrapper_tools/DeleteCrmFolder.json | 111 + .../wrapper_tools/DeleteCrmObject.json | 207 + .../wrapper_tools/DeleteCrmObjectSchema.json | 142 + .../wrapper_tools/DeleteDiscount.json | 109 + .../wrapper_tools/DeleteEmail.json | 109 + .../wrapper_tools/DeleteFeeObject.json | 109 + .../wrapper_tools/DeleteGoalTarget.json | 109 + .../DeleteHubspotTicketsBatch.json | 145 + .../wrapper_tools/DeleteInvoice.json | 109 + .../wrapper_tools/DeleteLineItem.json | 109 + .../wrapper_tools/DeleteList.json | 111 + .../wrapper_tools/DeleteMeeting.json | 109 + .../wrapper_tools/DeleteNoteHubspot.json | 109 + .../wrapper_tools/DeleteObjectHubspot.json | 109 + .../wrapper_tools/DeleteOrderById.json | 109 + .../wrapper_tools/DeletePipeline.json | 228 + .../wrapper_tools/DeletePipelineStage.json | 195 + .../wrapper_tools/DeletePropertyGroup.json | 162 + .../DeletePropertyHubspotCrm.json | 162 + .../DeleteScheduledConversion.json | 111 + .../wrapper_tools/DeleteShoppingCart.json | 109 + .../wrapper_tools/DeleteSubscription.json | 174 + .../wrapper_tools/DeleteTaskInHubspot.json | 109 + .../wrapper_tools/DeleteTaxEntry.json | 109 + .../wrapper_tools/DeleteTicket.json | 109 + .../wrapper_tools/DeleteUser.json | 109 + .../wrapper_tools/EditHubspotObject.json | 193 + .../EnableObjectTypeInHubspot.json | 173 + .../FetchAssociationLimitObjects.json | 173 + .../wrapper_tools/FetchEnablementData.json | 138 + .../wrapper_tools/FetchHubspotListById.json | 142 + .../FetchHubspotListMemberships.json | 208 + .../wrapper_tools/FetchHubspotObjectById.json | 372 + .../FetchHubspotObjectRecords.json | 226 + .../wrapper_tools/FetchHubspotRecords.json | 226 + .../wrapper_tools/FetchListByName.json | 175 + .../FetchListMembershipsOrdered.json | 208 + .../FetchPropertyValidation.json | 219 + .../wrapper_tools/FetchTicketsPage.json | 274 + .../wrapper_tools/GdprDeleteContact.json | 142 + .../wrapper_tools/GdprDeleteObject.json | 240 + .../wrapper_tools/GetAllPipelines.json | 186 + .../wrapper_tools/GetAppointmentsData.json | 372 + .../GetAssociationLimitRecords.json | 206 + .../wrapper_tools/GetAssociationTypes.json | 206 + .../GetAssociationsInHubspot.json | 339 + .../GetCalculatedPropertiesLimits.json | 138 + .../wrapper_tools/GetCallDetails.json | 274 + .../wrapper_tools/GetCallsPage.json | 274 + .../wrapper_tools/GetCartDetails.json | 274 + .../wrapper_tools/GetCommercePayments.json | 274 + .../wrapper_tools/GetCommunicationById.json | 274 + .../wrapper_tools/GetContactDetails.json | 274 + .../wrapper_tools/GetContacts.json | 274 + .../wrapper_tools/GetCourseDetails.json | 274 + .../wrapper_tools/GetCourses.json | 274 + .../wrapper_tools/GetCrmFees.json | 274 + .../wrapper_tools/GetCrmObjectSchema.json | 112 + .../GetCustomAssociationLabelsLimits.json | 206 + .../wrapper_tools/GetCustomObjectLimits.json | 81 + .../GetCustomPropertyLimits.json | 138 + .../wrapper_tools/GetDealsPage.json | 274 + .../wrapper_tools/GetFeeDetails.json | 274 + .../GetFeedbackSubmissionById.json | 275 + .../wrapper_tools/GetFeedbackSubmissions.json | 275 + .../wrapper_tools/GetGoalTargetById.json | 274 + .../wrapper_tools/GetGoalTargets.json | 274 + .../GetHubspotCrmLimitsRecords.json | 138 + .../GetHubspotCrmObjectSchemas.json | 112 + .../wrapper_tools/GetHubspotDealById.json | 274 + .../wrapper_tools/GetHubspotDiscounts.json | 274 + .../wrapper_tools/GetHubspotLeadsPage.json | 274 + .../wrapper_tools/GetHubspotObjectById.json | 274 + .../wrapper_tools/GetHubspotObjectsPage.json | 372 + .../wrapper_tools/GetInvoiceById.json | 274 + .../wrapper_tools/GetLeadById.json | 274 + .../wrapper_tools/GetLineItemDetails.json | 274 + .../wrapper_tools/GetListingDetails.json | 274 + .../wrapper_tools/GetMeetingDetailsById.json | 274 + .../wrapper_tools/GetMeetingsPage.json | 274 + .../GetMultiplePostalMailObjects.json | 226 + .../wrapper_tools/GetNoteDetails.json | 274 + .../wrapper_tools/GetOrderDetails.json | 274 + .../wrapper_tools/GetOrdersPage.json | 274 + .../wrapper_tools/GetPartnerClientInfo.json | 274 + .../wrapper_tools/GetPartnerClients.json | 274 + .../GetPartnerServiceDetails.json | 274 + .../wrapper_tools/GetPartnerServices.json | 274 + .../wrapper_tools/GetPaymentDetails.json | 270 + .../wrapper_tools/GetPaymentRecords.json | 270 + .../wrapper_tools/GetPipelineAuditLog.json | 219 + .../wrapper_tools/GetPipelineById.json | 219 + .../wrapper_tools/GetPipelineStageAudit.json | 252 + .../wrapper_tools/GetPipelineStageById.json | 252 + .../wrapper_tools/GetPipelineStages.json | 219 + .../wrapper_tools/GetPostalMailById.json | 274 + .../wrapper_tools/GetPostalMailRecords.json | 274 + .../wrapper_tools/GetProductDetailsById.json | 274 + .../wrapper_tools/GetProductsPage.json | 274 + .../GetPropertyValidationRules.json | 186 + .../wrapper_tools/GetQuoteById.json | 274 + .../wrapper_tools/GetQuotesPage.json | 274 + .../GetRecordListMemberships.json | 142 + .../wrapper_tools/GetSubscriptionData.json | 274 + .../wrapper_tools/GetSubscriptionDetails.json | 274 + .../wrapper_tools/GetTaskDetails.json | 274 + .../wrapper_tools/GetTasksList.json | 274 + .../wrapper_tools/GetTaxDetailsById.json | 274 + .../wrapper_tools/GetTaxesPage.json | 274 + .../wrapper_tools/GetTicketDetails.json | 274 + .../wrapper_tools/GetTranscriptById.json | 109 + .../wrapper_tools/GetUserInfo.json | 274 + .../wrapper_tools/GetUsersPage.json | 274 + .../HubspotBatchArchiveAssociations.json | 343 + .../HubspotCrmSearchObjects.json | 335 + .../HubspotCrmUpsertRecords.json | 193 + .../HubspotSearchCustomObjects.json | 335 + .../wrapper_tools/HubspotUpdateListing.json | 193 + .../wrapper_tools/ListCrmEntries.json | 274 + .../ListPartnerClientAssociations.json | 241 + .../ListPartnerServiceAssociations.json | 241 + .../wrapper_tools/ManageDealSplits.json | 195 + .../wrapper_tools/MergeCompanyRecords.json | 142 + .../wrapper_tools/MergeContacts.json | 142 + .../wrapper_tools/MergeDeals.json | 142 + .../wrapper_tools/MergeHubspotCrmObjects.json | 240 + .../wrapper_tools/MergeHubspotObjects.json | 240 + .../wrapper_tools/MergeSupportTickets.json | 142 + .../wrapper_tools/ModifyHubspotObject.json | 291 + .../wrapper_tools/MoveFolderInHubspot.json | 144 + .../wrapper_tools/MoveListToFolder.json | 144 + .../MoveListingToRecycleBin.json | 109 + .../wrapper_tools/MoveObjectToRecycleBin.json | 207 + .../wrapper_tools/PipelineLimitsUsage.json | 138 + .../wrapper_tools/ReadBatchDealSplits.json | 145 + .../wrapper_tools/ReadBatchPayments.json | 222 + .../wrapper_tools/ReadBatchProperties.json | 295 + .../wrapper_tools/ReadCommunicationsPage.json | 274 + .../wrapper_tools/ReadProperty.json | 285 + .../wrapper_tools/ReadPropertyGroup.json | 219 + .../wrapper_tools/ReadServicesPage.json | 274 + .../RemoveAllListMemberships.json | 111 + .../wrapper_tools/RemoveCrmAssociation.json | 306 + .../RemovePartnerClientAssociation.json | 208 + .../RemovePartnerServiceAssociation.json | 208 + .../wrapper_tools/RemoveProduct.json | 109 + .../wrapper_tools/RemoveRecordsFromList.json | 144 + .../wrapper_tools/RenameCrmFolder.json | 144 + .../wrapper_tools/ReplacePipelineHubspot.json | 361 + .../ReplacePipelineStageProperties.json | 278 + .../wrapper_tools/RestoreDeletedList.json | 111 + .../wrapper_tools/RetrieveAllCompanies.json | 274 + .../RetrieveBatchCommunications.json | 226 + .../RetrieveBatchCompaniesHubspot.json | 226 + .../wrapper_tools/RetrieveBatchLineItems.json | 226 + .../wrapper_tools/RetrieveCallsBatch.json | 226 + .../wrapper_tools/RetrieveCartDetails.json | 274 + .../wrapper_tools/RetrieveCartRecords.json | 226 + .../RetrieveCommercePaymentDetails.json | 274 + .../RetrieveCommercePaymentRecords.json | 226 + .../wrapper_tools/RetrieveCompanyById.json | 274 + .../RetrieveConversionDetails.json | 109 + .../wrapper_tools/RetrieveCrmObject.json | 372 + .../wrapper_tools/RetrieveCrmRecords.json | 226 + .../RetrieveDiscountDetails.json | 274 + .../RetrieveDiscountRecords.json | 226 + .../wrapper_tools/RetrieveEmailById.json | 274 + .../wrapper_tools/RetrieveEmailRecords.json | 226 + .../wrapper_tools/RetrieveEmailsPage.json | 274 + .../wrapper_tools/RetrieveEventDetails.json | 157 + .../wrapper_tools/RetrieveEventInstance.json | 157 + .../wrapper_tools/RetrieveFeeRecords.json | 226 + .../RetrieveFeedbackRecords.json | 227 + .../RetrieveFoldersWithChildNodes.json | 109 + .../wrapper_tools/RetrieveGoalTargets.json | 226 + .../RetrieveHubspotCrmRecords.json | 324 + .../wrapper_tools/RetrieveHubspotOrders.json | 226 + .../RetrieveHubspotProductRecords.json | 226 + .../RetrieveHubspotProperties.json | 252 + .../RetrieveHubspotPropertyGroups.json | 186 + .../wrapper_tools/RetrieveHubspotRecords.json | 226 + .../wrapper_tools/RetrieveHubspotTasks.json | 226 + .../RetrieveHubspotUserRecords.json | 226 + .../wrapper_tools/RetrieveInvoiceRecords.json | 226 + .../wrapper_tools/RetrieveInvoices.json | 274 + .../wrapper_tools/RetrieveLeadRecords.json | 226 + .../RetrieveLimitApproachingRecords.json | 138 + .../wrapper_tools/RetrieveLineItemsPage.json | 274 + .../wrapper_tools/RetrieveMeetingRecords.json | 226 + .../wrapper_tools/RetrieveNotesPage.json | 274 + .../wrapper_tools/RetrieveNotesRecords.json | 226 + .../wrapper_tools/RetrieveOwnerDetails.json | 181 + .../wrapper_tools/RetrieveOwnersList.json | 208 + .../RetrievePartnerServicesRecords.json | 226 + .../wrapper_tools/RetrieveQuotesBatch.json | 226 + .../RetrieveSubscriptionRecords.json | 226 + .../wrapper_tools/RetrieveTaxRecords.json | 226 + .../wrapper_tools/RetrieveTicketBatch.json | 222 + .../wrapper_tools/ScheduleListConversion.json | 144 + .../wrapper_tools/SearchAppointments.json | 433 + .../wrapper_tools/SearchCallsHubspot.json | 335 + .../wrapper_tools/SearchCommercePayments.json | 335 + .../SearchCompaniesInHubspot.json | 335 + .../wrapper_tools/SearchContacts.json | 335 + .../wrapper_tools/SearchCrmLeads.json | 335 + .../wrapper_tools/SearchCrmMessages.json | 335 + .../wrapper_tools/SearchCrmUsers.json | 335 + .../wrapper_tools/SearchDeals.json | 335 + .../wrapper_tools/SearchDiscounts.json | 335 + .../wrapper_tools/SearchEmails.json | 335 + .../SearchFeedbackSubmissions.json | 336 + .../wrapper_tools/SearchFeesInCrm.json | 335 + .../wrapper_tools/SearchGoalTargets.json | 335 + .../wrapper_tools/SearchHubspotCarts.json | 335 + .../wrapper_tools/SearchHubspotListings.json | 335 + .../wrapper_tools/SearchHubspotLists.json | 307 + .../wrapper_tools/SearchHubspotMeetings.json | 335 + .../wrapper_tools/SearchHubspotNotes.json | 335 + .../wrapper_tools/SearchHubspotObjects.json | 433 + .../wrapper_tools/SearchHubspotPayments.json | 331 + .../wrapper_tools/SearchHubspotProducts.json | 335 + .../SearchHubspotSubscriptions.json | 335 + .../wrapper_tools/SearchHubspotTasks.json | 335 + .../wrapper_tools/SearchInvoices.json | 335 + .../wrapper_tools/SearchLineItems.json | 335 + .../wrapper_tools/SearchOrderRecords.json | 335 + .../wrapper_tools/SearchPartnerClients.json | 335 + .../SearchPartnerServicesHubspot.json | 335 + .../SearchPostalMailHubspot.json | 335 + .../wrapper_tools/SearchQuotesInHubspot.json | 335 + .../wrapper_tools/SearchTaxes.json | 335 + .../wrapper_tools/SearchTickets.json | 335 + .../wrapper_tools/SendEventToHubspot.json | 368 + .../TranslateLegacyListIdsBatch.json | 109 + .../TranslateLegacyToNewListId.json | 109 + .../wrapper_tools/UpdateBatchCalls.json | 193 + .../wrapper_tools/UpdateBatchContacts.json | 193 + .../wrapper_tools/UpdateBatchEmails.json | 193 + .../wrapper_tools/UpdateBatchFees.json | 193 + .../wrapper_tools/UpdateBatchGoalTargets.json | 193 + .../wrapper_tools/UpdateBatchOfCompanies.json | 193 + .../wrapper_tools/UpdateBatchTasks.json | 193 + .../wrapper_tools/UpdateBatchTaxes.json | 193 + .../wrapper_tools/UpdateCallInfo.json | 193 + .../wrapper_tools/UpdateCartProperties.json | 193 + .../wrapper_tools/UpdateCartsBatch.json | 193 + .../wrapper_tools/UpdateCommercePayment.json | 193 + .../UpdateCommercePaymentsBatch.json | 193 + .../UpdateCommunicationDetails.json | 193 + .../UpdateContactInformation.json | 193 + .../wrapper_tools/UpdateCoursesBatch.json | 193 + .../wrapper_tools/UpdateCrmObjectSchema.json | 406 + .../wrapper_tools/UpdateDiscountDetails.json | 193 + .../wrapper_tools/UpdateDiscountsBatch.json | 193 + .../UpdateEmailInHubspotCrm.json | 193 + .../wrapper_tools/UpdateFeeDetails.json | 193 + .../wrapper_tools/UpdateGoalTarget.json | 193 + .../wrapper_tools/UpdateHubspotCompany.json | 193 + .../wrapper_tools/UpdateHubspotCourse.json | 193 + .../wrapper_tools/UpdateHubspotDeal.json | 193 + .../wrapper_tools/UpdateHubspotMeeting.json | 193 + .../wrapper_tools/UpdateHubspotNote.json | 193 + .../wrapper_tools/UpdateHubspotObject.json | 291 + .../UpdateHubspotObjectsBatch.json | 291 + .../UpdateHubspotOrdersBatch.json | 193 + .../UpdateHubspotProductsBatch.json | 193 + .../wrapper_tools/UpdateHubspotTask.json | 193 + .../wrapper_tools/UpdateHubspotUser.json | 193 + .../wrapper_tools/UpdateInvoiceDetails.json | 193 + .../wrapper_tools/UpdateInvoicesBatch.json | 193 + .../wrapper_tools/UpdateLeadDetails.json | 193 + .../wrapper_tools/UpdateLeadsBatch.json | 193 + .../wrapper_tools/UpdateLineItem.json | 193 + .../wrapper_tools/UpdateLineItemsBatch.json | 193 + .../wrapper_tools/UpdateListMemberships.json | 177 + .../wrapper_tools/UpdateListName.json | 177 + .../wrapper_tools/UpdateMeetingsBatch.json | 193 + .../wrapper_tools/UpdateMessagesBatch.json | 193 + .../UpdateMultipleCrmListings.json | 193 + .../wrapper_tools/UpdateMultipleDeals.json | 193 + .../UpdateMultipleHubspotAppointments.json | 291 + .../UpdateMultiplePostalMails.json | 193 + .../wrapper_tools/UpdateMultipleUsers.json | 193 + .../UpdateOrCreateHubspotRecords.json | 291 + .../wrapper_tools/UpdateOrderDetails.json | 193 + .../wrapper_tools/UpdatePartnerClient.json | 193 + .../UpdatePartnerClientsBatch.json | 193 + .../wrapper_tools/UpdatePartnerService.json | 193 + .../UpdatePartnerServicesBatch.json | 193 + .../wrapper_tools/UpdatePipelineInCrm.json | 327 + .../wrapper_tools/UpdatePipelineStage.json | 294 + .../wrapper_tools/UpdatePostalMailRecord.json | 193 + .../wrapper_tools/UpdateProductInfo.json | 193 + .../wrapper_tools/UpdatePropertyGroup.json | 228 + .../wrapper_tools/UpdatePropertyValue.json | 481 + .../wrapper_tools/UpdateQuoteBatch.json | 193 + .../wrapper_tools/UpdateQuoteInformation.json | 193 + .../wrapper_tools/UpdateServicesBatch.json | 193 + .../wrapper_tools/UpdateSubscription.json | 258 + .../UpdateSubscriptionBatch.json | 258 + .../wrapper_tools/UpdateTaxObject.json | 193 + .../wrapper_tools/UpdateTicketBatch.json | 193 + .../wrapper_tools/UpdateTicketInfo.json | 193 + .../wrapper_tools/UploadCallTranscripts.json | 275 + .../wrapper_tools/UpsertCallRecords.json | 193 + .../wrapper_tools/UpsertCartRecords.json | 193 + .../wrapper_tools/UpsertCommercePayments.json | 193 + .../UpsertCommunicationsRecords.json | 193 + .../wrapper_tools/UpsertContactBatch.json | 193 + .../wrapper_tools/UpsertCrmTickets.json | 193 + .../wrapper_tools/UpsertDiscountRecords.json | 193 + .../wrapper_tools/UpsertGoalTargets.json | 193 + .../wrapper_tools/UpsertHubspotFees.json | 193 + .../wrapper_tools/UpsertHubspotInvoices.json | 193 + .../UpsertHubspotProductsBatch.json | 193 + .../wrapper_tools/UpsertHubspotRecords.json | 291 + .../wrapper_tools/UpsertHubspotTasks.json | 193 + .../wrapper_tools/UpsertHubspotUsers.json | 193 + .../wrapper_tools/UpsertLineItemsBatch.json | 193 + .../wrapper_tools/UpsertMeetings.json | 193 + .../wrapper_tools/UpsertNotesHubspot.json | 193 + .../wrapper_tools/UpsertOrdersInHubspot.json | 193 + .../UpsertPostalMailInHubspot.json | 193 + .../UpsertSubscriptionsInHubspotCrm.json | 258 + toolkits/hubspot_crm_api/pyproject.toml | 61 + toolkits/hubspot_marketing_api/Makefile | 54 + toolkits/hubspot_marketing_api/README.md | 26 + .../arcade_hubspot_marketing_api/__init__.py | 0 .../moar/Hubspot_Marketing.json | 33640 +++ .../moar/openapi.json | 70648 +++++ .../tools/__init__.py | 5910 + .../tools/request_body_schemas.py | 41 + .../wrapper_tools/AddCampaignBudgetItem.json | 241 + .../wrapper_tools/ArchiveCampaignsBatch.json | 145 + .../wrapper_tools/ArchiveMarketingForm.json | 109 + .../AssociateAssetWithCampaign.json | 175 + .../AssociateListWithMarketingEvent.json | 142 + .../wrapper_tools/CancelMarketingEvent.json | 142 + .../wrapper_tools/CloneHubspotEmail.json | 175 + .../CreateAbTestEmailVariation.json | 142 + .../wrapper_tools/CreateCampaignSpend.json | 241 + .../CreateMarketingCampaign.json | 127 + .../CreateMarketingCampaignBatch.json | 145 + .../wrapper_tools/CreateMarketingEmail.json | 4153 + .../wrapper_tools/CreateMarketingEvent.json | 817 + .../wrapper_tools/CreateMarketingForm.json | 109 + .../wrapper_tools/CreateSmtpApiToken.json | 142 + .../DeleteCampaignBudgetItem.json | 142 + .../DeleteMarketingCampaign.json | 109 + .../wrapper_tools/DeleteMarketingEmail.json | 109 + .../wrapper_tools/DeleteMarketingEvent.json | 142 + .../wrapper_tools/DeleteMarketingEvents.json | 145 + .../wrapper_tools/DeleteSmtpToken.json | 109 + .../DisassociateCampaignAsset.json | 175 + .../DisassociateListFromMarketingEvent.json | 142 + .../DisassociateMarketingEventList.json | 175 + .../FetchCampaignContactIds.json | 274 + .../wrapper_tools/FetchEmailStatistics.json | 74 + .../wrapper_tools/FetchEventDetails.json | 109 + .../FetchMarketingCampaignBatches.json | 244 + .../FindHubspotMarketingEvents.json | 109 + .../wrapper_tools/GetAllMarketingEvents.json | 142 + .../GetCampaignAttributionMetrics.json | 175 + .../wrapper_tools/GetCampaignBudget.json | 142 + .../GetCampaignBudgetDetails.json | 109 + .../wrapper_tools/GetCampaignDetails.json | 208 + .../GetCampaignRevenueReport.json | 208 + .../wrapper_tools/GetCampaignSpendItem.json | 142 + .../GetContactParticipationsBreakdown.json | 208 + .../GetEmailAbTestVariation.json | 109 + .../wrapper_tools/GetEmailRevisions.json | 109 + .../wrapper_tools/GetEmailStatistics.json | 74 + .../GetEventParticipationCounters.json | 142 + .../wrapper_tools/GetFormById.json | 142 + .../wrapper_tools/GetMarketingCampaigns.json | 241 + .../GetMarketingEmailDetails.json | 109 + .../GetMarketingEmailRevision.json | 142 + .../GetMarketingEventAssociatedLists.json | 142 + .../GetMarketingEventDetails.json | 142 + .../wrapper_tools/GetMarketingEventLists.json | 109 + ...tMarketingEventParticipationBreakdown.json | 274 + ...etMarketingEventParticipationCounters.json | 109 + ...MarketingEventParticipationsBreakdown.json | 241 + .../wrapper_tools/GetSmtpTokenById.json | 109 + .../HubspotMarketingEmailFilter.json | 74 + .../wrapper_tools/LinkListToEvent.json | 175 + .../wrapper_tools/ListCampaignAssets.json | 274 + .../wrapper_tools/ListHubspotForms.json | 208 + .../MarkMarketingEventCompleted.json | 208 + .../wrapper_tools/ModifyEventInformation.json | 802 + .../wrapper_tools/PublishHubspotEmail.json | 110 + .../wrapper_tools/QuerySmtpTokens.json | 208 + .../wrapper_tools/RecordEventAttendance.json | 243 + .../RecordEventParticipationHubspot.json | 292 + .../RecordHubspotSubscriberState.json | 276 + .../RecordMarketingEventAttendance.json | 276 + .../wrapper_tools/RecordSubscriberState.json | 292 + .../RegisterEventParticipation.json | 259 + .../RemoveCampaignSpendItem.json | 142 + .../wrapper_tools/RemoveMarketingEvent.json | 109 + .../wrapper_tools/RemoveMarketingEvents.json | 177 + .../wrapper_tools/ResetEmailDraftToLive.json | 109 + .../wrapper_tools/ResetPasswordForToken.json | 109 + .../wrapper_tools/RestoreEmailRevision.json | 142 + .../RestoreEmailRevisionToDraft.json | 142 + .../wrapper_tools/RetrieveEmailDraft.json | 109 + .../SearchMarketingEventsByExternalId.json | 109 + .../wrapper_tools/SendMarketingEmail.json | 274 + .../wrapper_tools/SendTransactionalEmail.json | 273 + .../UnpublishMarketingEmail.json | 110 + .../wrapper_tools/UpdateCampaignBatch.json | 161 + .../wrapper_tools/UpdateCampaignBudget.json | 274 + .../UpdateCampaignProperties.json | 160 + .../wrapper_tools/UpdateCampaignSpend.json | 274 + .../wrapper_tools/UpdateEmailDraft.json | 4170 + .../wrapper_tools/UpdateHubspotForm.json | 142 + .../UpdateHubspotMarketingForm.json | 972 + .../UpdateMarketingEmailProperties.json | 4170 + .../UpdateMarketingEventDetails.json | 851 + .../UpdateMarketingEventsBatch.json | 803 + .../wrapper_tools/UpsertMarketingEvent.json | 850 + .../wrapper_tools/UpsertMarketingEvents.json | 835 + toolkits/hubspot_marketing_api/pyproject.toml | 61 + 562 files changed, 608582 insertions(+) create mode 100644 toolkits/hubspot_crm_api/.pre-commit-config.yaml create mode 100644 toolkits/hubspot_crm_api/.ruff.toml create mode 100644 toolkits/hubspot_crm_api/LICENSE create mode 100644 toolkits/hubspot_crm_api/Makefile create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/__init__.py create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/hubspot_crm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/openapi.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/__init__.py create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/request_body_schemas.py create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddAllFromSourceListToDestinationList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddToHubspotCrmList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCartsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommercePaymentsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommunication.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveContactsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCoursesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCrmProperties.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDealInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDiscountsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveEmailsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveFeesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveGoalTargetsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotLead.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotObjectsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotTasks.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveInvoicesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLeadsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLineItemsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMeetingsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleAppointments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleDeals.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleListings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveNotesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveOrdersBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMail.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMailBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveProductsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuote.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuotesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveServicesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveSubscriptionsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveTaxBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveUsersBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerClientWithObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerService.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchCreateTimelineEvents.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadAssociations.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadContacts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadPartnerClients.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchRetrieveHubspotRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpdateNotes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpsertRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAppointments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAssociationsHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchCommercePayments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchContacts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchDiscountsHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchFees.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchMeetings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCalls.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCarts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCompanies.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCourses.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfEmails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfInvoices.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfNotes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfProducts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfQuotes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfServices.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOrders.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchProperties.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchSubscriptions.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTasks.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTickets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCartHubspotCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCommercePayment.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCompanyHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmAppointment.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectAssociation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectSchema.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmPipeline.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmUser.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateDiscount.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFeeInCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFolderHubspotCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTarget.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTargetsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCall.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCommunication.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotContact.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCourse.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCrmProperty.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotDeal.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotEmail.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotInvoice.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotLineItem.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotListing.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMeeting.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMessagesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotObjectsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotOrder.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotQuote.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotTax.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLineItemsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleDeals.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleListings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateNoteInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateObjectAssociation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateBatchRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateCompanies.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotEmails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateQuotes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateTaxRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePipelineStage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateProductInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePropertyGroup.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateServiceRecord.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateSubscription.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaskInCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaxBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTicket.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateUsersBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteBatchMessages.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCallTranscript.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCommercePayment.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompaniesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompany.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteContact.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCourse.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmAssociation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmFolder.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObjectSchema.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteDiscount.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteEmail.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteFeeObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteGoalTarget.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteHubspotTicketsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteInvoice.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteLineItem.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteMeeting.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteNoteHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteObjectHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteOrderById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipeline.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipelineStage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyGroup.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyHubspotCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteScheduledConversion.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteShoppingCart.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteSubscription.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaskInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaxEntry.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTicket.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteUser.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EditHubspotObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EnableObjectTypeInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchAssociationLimitObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchEnablementData.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListMemberships.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListByName.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListMembershipsOrdered.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchPropertyValidation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchTicketsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteContact.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAllPipelines.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAppointmentsData.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationLimitRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationTypes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationsInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCalculatedPropertiesLimits.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCartDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommercePayments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommunicationById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContactDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContacts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourseDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourses.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmFees.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmObjectSchema.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomAssociationLabelsLimits.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomObjectLimits.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomPropertyLimits.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetDealsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeeDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissionById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissions.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargetById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmLimitsRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmObjectSchemas.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDealById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDiscounts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotLeadsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetInvoiceById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLeadById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLineItemDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetListingDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingDetailsById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMultiplePostalMailObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetNoteDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrderDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrdersPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClientInfo.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClients.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServiceDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServices.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineAuditLog.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageAudit.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStages.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductDetailsById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPropertyValidationRules.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuoteById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuotesPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetRecordListMemberships.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionData.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaskDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTasksList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxDetailsById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxesPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTicketDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTranscriptById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUserInfo.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUsersPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotBatchArchiveAssociations.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmSearchObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmUpsertRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotSearchCustomObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotUpdateListing.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListCrmEntries.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerClientAssociations.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerServiceAssociations.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ManageDealSplits.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeCompanyRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeContacts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeDeals.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotCrmObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeSupportTickets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ModifyHubspotObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveFolderInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListToFolder.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListingToRecycleBin.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveObjectToRecycleBin.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/PipelineLimitsUsage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchDealSplits.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchPayments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchProperties.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadCommunicationsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadProperty.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadPropertyGroup.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadServicesPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveAllListMemberships.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveCrmAssociation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerClientAssociation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerServiceAssociation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveProduct.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveRecordsFromList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RenameCrmFolder.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineStageProperties.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RestoreDeletedList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveAllCompanies.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCommunications.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCompaniesHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchLineItems.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCallsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCompanyById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveConversionDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailById.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventInstance.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeeRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeedbackRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFoldersWithChildNodes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveGoalTargets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotCrmRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotOrders.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProductRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProperties.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotPropertyGroups.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotTasks.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotUserRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoiceRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoices.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLeadRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLimitApproachingRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLineItemsPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveMeetingRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesPage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnerDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnersList.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrievePartnerServicesRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveQuotesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveSubscriptionRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTaxRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTicketBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ScheduleListConversion.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchAppointments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCallsHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCommercePayments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCompaniesInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchContacts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmLeads.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmMessages.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmUsers.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDeals.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDiscounts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchEmails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeedbackSubmissions.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeesInCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchGoalTargets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotCarts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotListings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotLists.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotMeetings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotNotes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotObjects.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotPayments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotProducts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotSubscriptions.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotTasks.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchInvoices.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchLineItems.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchOrderRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerClients.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerServicesHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPostalMailHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchQuotesInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTaxes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTickets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SendEventToHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyListIdsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyToNewListId.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchCalls.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchContacts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchEmails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchFees.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchGoalTargets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchOfCompanies.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTasks.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTaxes.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCallInfo.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartProperties.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePayment.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePaymentsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommunicationDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateContactInformation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCoursesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCrmObjectSchema.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateEmailInHubspotCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateFeeDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateGoalTarget.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCompany.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCourse.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotDeal.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotMeeting.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotNote.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObjectsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotOrdersBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotProductsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotTask.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotUser.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoiceDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoicesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItem.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItemsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListMemberships.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListName.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMeetingsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMessagesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleCrmListings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleDeals.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleHubspotAppointments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultiplePostalMails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleUsers.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrCreateHubspotRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrderDetails.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClient.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClientsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerService.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerServicesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineInCrm.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineStage.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePostalMailRecord.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateProductInfo.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyGroup.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyValue.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteInformation.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateServicesBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscription.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscriptionBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTaxObject.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketInfo.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UploadCallTranscripts.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCallRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCartRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommercePayments.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommunicationsRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertContactBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCrmTickets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertDiscountRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertGoalTargets.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotFees.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotInvoices.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotProductsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotRecords.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotTasks.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotUsers.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertLineItemsBatch.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertMeetings.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertNotesHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertOrdersInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertPostalMailInHubspot.json create mode 100644 toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertSubscriptionsInHubspotCrm.json create mode 100644 toolkits/hubspot_crm_api/pyproject.toml create mode 100644 toolkits/hubspot_marketing_api/Makefile create mode 100644 toolkits/hubspot_marketing_api/README.md create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/__init__.py create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/Hubspot_Marketing.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/openapi.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/__init__.py create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/request_body_schemas.py create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AddCampaignBudgetItem.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveCampaignsBatch.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveMarketingForm.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateAssetWithCampaign.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateListWithMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CancelMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CloneHubspotEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateAbTestEmailVariation.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateCampaignSpend.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaign.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaignBatch.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingForm.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateSmtpApiToken.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteCampaignBudgetItem.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingCampaign.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvents.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteSmtpToken.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateCampaignAsset.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateListFromMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateMarketingEventList.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchCampaignContactIds.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEmailStatistics.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEventDetails.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchMarketingCampaignBatches.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FindHubspotMarketingEvents.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetAllMarketingEvents.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignAttributionMetrics.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudget.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudgetDetails.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignDetails.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignRevenueReport.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignSpendItem.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetContactParticipationsBreakdown.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailAbTestVariation.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailRevisions.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailStatistics.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEventParticipationCounters.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetFormById.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingCampaigns.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailDetails.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailRevision.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventAssociatedLists.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventDetails.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventLists.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationBreakdown.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationCounters.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationsBreakdown.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetSmtpTokenById.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/HubspotMarketingEmailFilter.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/LinkListToEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListCampaignAssets.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListHubspotForms.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/MarkMarketingEventCompleted.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ModifyEventInformation.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/PublishHubspotEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/QuerySmtpTokens.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventAttendance.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventParticipationHubspot.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordHubspotSubscriberState.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordMarketingEventAttendance.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordSubscriberState.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RegisterEventParticipation.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveCampaignSpendItem.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvents.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetEmailDraftToLive.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetPasswordForToken.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevision.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevisionToDraft.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RetrieveEmailDraft.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SearchMarketingEventsByExternalId.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendMarketingEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendTransactionalEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UnpublishMarketingEmail.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBatch.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBudget.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignProperties.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignSpend.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateEmailDraft.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotForm.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotMarketingForm.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEmailProperties.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventDetails.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventsBatch.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvent.json create mode 100644 toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvents.json create mode 100644 toolkits/hubspot_marketing_api/pyproject.toml diff --git a/docker/toolkits.txt b/docker/toolkits.txt index 3e96046c..acf9ad36 100644 --- a/docker/toolkits.txt +++ b/docker/toolkits.txt @@ -11,6 +11,8 @@ arcade-exa-api arcade-figma-api arcade-freshservice-api arcade-github-api +arcade-hubspot-crm-api +arcade-hubspot-marketing-api arcade-linkedin arcade-math arcade-miro-api diff --git a/toolkits/hubspot_crm_api/.pre-commit-config.yaml b/toolkits/hubspot_crm_api/.pre-commit-config.yaml new file mode 100644 index 00000000..7e58ac55 --- /dev/null +++ b/toolkits/hubspot_crm_api/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +files: ^.*/hubspot_crm_api/.* +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: "v4.4.0" + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-toml + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.7 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format diff --git a/toolkits/hubspot_crm_api/.ruff.toml b/toolkits/hubspot_crm_api/.ruff.toml new file mode 100644 index 00000000..9519fe6c --- /dev/null +++ b/toolkits/hubspot_crm_api/.ruff.toml @@ -0,0 +1,44 @@ +target-version = "py310" +line-length = 100 +fix = true + +[lint] +select = [ + # flake8-2020 + "YTT", + # flake8-bandit + "S", + # flake8-bugbear + "B", + # flake8-builtins + "A", + # flake8-comprehensions + "C4", + # flake8-debugger + "T10", + # flake8-simplify + "SIM", + # isort + "I", + # mccabe + "C90", + # pycodestyle + "E", "W", + # pyflakes + "F", + # pygrep-hooks + "PGH", + # pyupgrade + "UP", + # ruff + "RUF", + # tryceratops + "TRY", +] + +[lint.per-file-ignores] +"**/tests/*" = ["S101"] + +[format] +preview = true +skip-magic-trailing-comma = false diff --git a/toolkits/hubspot_crm_api/LICENSE b/toolkits/hubspot_crm_api/LICENSE new file mode 100644 index 00000000..dfbb8b76 --- /dev/null +++ b/toolkits/hubspot_crm_api/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025, Arcade AI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/toolkits/hubspot_crm_api/Makefile b/toolkits/hubspot_crm_api/Makefile new file mode 100644 index 00000000..86da492a --- /dev/null +++ b/toolkits/hubspot_crm_api/Makefile @@ -0,0 +1,54 @@ +.PHONY: help + +help: + @echo "🛠️ github Commands:\n" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: install +install: ## Install the uv environment and install all packages with dependencies + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras --no-sources + @if [ -f .pre-commit-config.yaml ]; then uv run --no-sources pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" + +.PHONY: install-local +install-local: ## Install the uv environment and install all packages with dependencies with local Arcade sources + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras + @if [ -f .pre-commit-config.yaml ]; then uv run pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" +.PHONY: build +build: clean-build ## Build wheel file using poetry + @echo "🚀 Creating wheel file" + uv build + +.PHONY: clean-build +clean-build: ## clean build artifacts + @echo "🗑️ Cleaning dist directory" + rm -rf dist + +.PHONY: test +test: ## Test the code with pytest + @echo "🚀 Testing code: Running pytest" + @uv run --no-sources pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml + +.PHONY: coverage +coverage: ## Generate coverage report + @echo "coverage report" + @uv run --no-sources coverage report + @echo "Generating coverage report" + @uv run --no-sources coverage html + +.PHONY: bump-version +bump-version: ## Bump the version in the pyproject.toml file by a patch version + @echo "🚀 Bumping version in pyproject.toml" + uv version --no-sources --bump patch + +.PHONY: check +check: ## Run code quality tools. + @if [ -f .pre-commit-config.yaml ]; then\ + echo "🚀 Linting code: Running pre-commit";\ + uv run --no-sources pre-commit run -a;\ + fi + @echo "🚀 Static type checking: Running mypy" + @uv run --no-sources mypy --config-file=pyproject.toml diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/__init__.py b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/hubspot_crm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/hubspot_crm.json new file mode 100644 index 00000000..681acba1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/hubspot_crm.json @@ -0,0 +1,89365 @@ +{ + "name": "hubspot_crm", + "spec_source": "openapi_spec", + "token_for_http_testing": "", + "package_name": "hubspot_crm_api", + "package_dir_path": "/Users/rb/arcade/arcade-ai/toolkits/hubspot_crm_api/arcade_hubspot_crm_api", + "project_dir_path": "/Users/rb/arcade/arcade-ai/toolkits/hubspot_crm_api", + "arcade_new_cmd_executed": true, + "api_endpoint_selection_customized": false, + "api_endpoint_for_http_testing": "", + "authorization_type": "oauth", + "auth_provider_id": "arcade-hubspot", + "where_to_provide_token": "header", + "token_key_name": "Authorization", + "token_value": "Bearer {authorization}", + "secrets": [], + "global_base_url": "https://api.hubapi.com", + "global_headers": {}, + "edit_operations": [], + "uuid": "848630f0-4ffa-4696-a2ce-06c193644ec0", + "api_endpoints": [ + { + "name": "post-/crm/objects/v3/{objectType}/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_crm_records", + "description": { + "tagline": "Retrieve HubSpot CRM records by ID or unique property.", + "detailed": "Use this tool to fetch HubSpot CRM records by specifying a record ID or a custom unique value property using the `idProperty` parameter." + }, + "return_annotation": "Retrieved CRM records data.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "hubspot_object_type", + "crm_record_type" + ], + "description": "The type of CRM object to retrieve (e.g., contacts, companies).", + "endpoint_argument_name": "objectType" + }, + { + "name": "record_retrieval_details", + "alternative_names": [ + "crm_record_details", + "hubspot_record_query" + ], + "description": "A JSON object with properties, idProperty, inputs, and propertiesWithHistory for specifying record retrieval details.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived_records", + "alternative_names": [ + "fetch_archived_only", + "include_archived_only" + ], + "description": "Set true to return only archived records; false to return unarchived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of appointments by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "put-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_object_association", + "description": { + "tagline": "Create an association between two CRM objects in HubSpot.", + "detailed": "Use this tool to link two objects in HubSpot CRM by specifying their types, IDs, and the type of association. This is useful for connecting related records, such as associating a contact with a specific company or deal." + }, + "return_annotation": "Information about the created association.", + "arguments": [ + { + "name": "source_object_type", + "alternative_names": [ + "primary_object_type", + "initial_object_type" + ], + "description": "Type of the source object. Specify the CRM object type, such as 'contact', 'company', or 'deal'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "source_object_id", + "alternative_names": [ + "primary_object_id", + "base_object_id" + ], + "description": "The ID of the primary object to associate in HubSpot. This should be a valid string representing the CRM object's unique identifier.", + "endpoint_argument_name": "objectId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "related_object_type", + "destination_object_type" + ], + "description": "The type of the target object to associate. Examples include 'contact', 'company', or 'deal'.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "target_object_id", + "alternative_names": [ + "destination_object_id", + "linked_object_id" + ], + "description": "The ID of the target object to associate with. This is the object you want to link to the main object in HubSpot CRM.", + "endpoint_argument_name": "toObjectId" + }, + { + "name": "association_type", + "alternative_names": [ + "type_of_association", + "association_kind" + ], + "description": "Specifies the type of association to create between the objects, such as 'contact_to_company'.", + "endpoint_argument_name": "associationType" + } + ] + }, + "method": "PUT", + "path": "/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "tags": [ + "Associations" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_crm_association", + "description": { + "tagline": "Remove associations between CRM objects.", + "detailed": "This tool removes the association between two CRM objects based on specified types and IDs. Use it when you need to delete a relationship or link between specific CRM entities." + }, + "return_annotation": "Indication of association removal success.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "primary_object_type" + ], + "description": "Specifies the type of the primary CRM object (e.g., 'contact', 'company').", + "endpoint_argument_name": "objectType" + }, + { + "name": "source_object_id", + "alternative_names": [ + "origin_object_id", + "initial_object_id" + ], + "description": "The unique identifier of the source object whose association is to be removed.", + "endpoint_argument_name": "objectId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "target_entity_type", + "linked_object_type" + ], + "description": "Specifies the type of the target CRM object to unlink. Examples include 'contact', 'company', etc.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "target_object_id", + "alternative_names": [ + "linked_object_id", + "destination_object_id" + ], + "description": "The ID of the target object to unlink from the source object. This must be a string representing the unique identifier.", + "endpoint_argument_name": "toObjectId" + }, + { + "name": "association_type", + "alternative_names": [ + "relationship_type", + "linkage_kind" + ], + "description": "The type of association between the CRM objects to be removed. Specify the nature of the relationship, such as 'contact-to-company'.", + "endpoint_argument_name": "associationType" + } + ] + }, + "method": "DELETE", + "path": "/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "tags": [ + "Associations" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_multiple_hubspot_appointments", + "description": { + "tagline": "Update multiple appointments in HubSpot CRM.", + "detailed": "Use this tool to update multiple appointments by their internal IDs or unique property values within HubSpot CRM." + }, + "return_annotation": "Confirmation of updated appointments.", + "arguments": [ + { + "name": "hubspot_object_type", + "alternative_names": [ + "entity_type", + "crm_entity_type" + ], + "description": "Specify the type of HubSpot CRM object to update, e.g., 'appointments'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "appointment_updates", + "alternative_names": [ + "appointments_payload", + "update_data" + ], + "description": "A JSON object containing an array of appointment updates, each with properties like 'id', 'idProperty', 'objectWriteTraceId', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of appointments by internal ID, or unique property values", + "description": "Update multiple appointments using their internal IDs or unique property values.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/objects/v3/{objectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_appointments_data", + "description": { + "tagline": "Retrieve a page of appointments from HubSpot CRM.", + "detailed": "Fetches appointment details using the specified properties to control the data returned. Useful for accessing and managing CRM appointment information." + }, + "return_annotation": "A page of appointment details from HubSpot CRM.", + "arguments": [ + { + "name": "appointment_object_type", + "alternative_names": [ + "appointment_type", + "object_type" + ], + "description": "The type of HubSpot object to be queried, specifically for appointments.", + "endpoint_argument_name": "objectType" + }, + { + "name": "results_limit", + "alternative_names": [ + "max_results_per_page", + "page_size_limit" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "continuation_token" + ], + "description": "Token indicating the last successfully read resource to continue pagination.", + "endpoint_argument_name": "after" + }, + { + "name": "appointment_properties_to_return", + "alternative_names": [ + "properties_list", + "response_properties" + ], + "description": "A list of property names to include in the response. Properties not present on the requested objects are ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "property_history_list" + ], + "description": "List properties to return with their history of values. Reduces max results per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "alternative_names": [ + "get_associated_ids_for_objects", + "associated_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. If specified associations don't exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "only_archived_results", + "alternative_names": [ + "fetch_only_archived_results", + "return_only_archived_data" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/objects/v3/{objectType}", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of appointments. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of appointments that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of appointments that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_crm_appointment", + "description": { + "tagline": "Create an appointment in the CRM with specified properties.", + "detailed": "Use this tool to schedule a new appointment within the CRM system. It requires the necessary properties for the appointment and returns the created appointment object along with its ID." + }, + "return_annotation": "A copy of the created appointment object, including its ID.", + "arguments": [ + { + "name": "appointment_object_type", + "alternative_names": [ + "crm_object_type", + "appointment_type" + ], + "description": "Specifies the type of CRM object to create. For appointments, this should be 'appointment'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "appointment_details", + "alternative_names": [ + "appointment_data", + "appointment_info" + ], + "description": "A JSON object containing key-value pairs for appointment properties and associations details like category and type ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a appointment with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard appointments is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_appointments", + "description": { + "tagline": "Create multiple appointments in one request.", + "detailed": "This tool facilitates the creation of multiple appointments in a single API call. Use it when you need to schedule several appointments efficiently without making multiple requests." + }, + "return_annotation": "Confirmation of created appointments.", + "arguments": [ + { + "name": "appointment_object_type", + "alternative_names": [ + "appointment_type", + "object_type_for_appointments" + ], + "description": "Specify the type of CRM object for the appointments, typically 'appointments'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "appointment_details", + "alternative_names": [ + "appointments_data", + "batch_appointments_input" + ], + "description": "A JSON object containing details for multiple appointments. Includes properties like associations, object trace ID, and other appointment specifics.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of appointments", + "description": "Create multiple appointments in a single request.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_associations_in_hubspot", + "description": { + "tagline": "Retrieve associations between HubSpot CRM objects.", + "detailed": "This tool is used to get the associations between specified HubSpot CRM objects. Useful for identifying relationships between different objects in the CRM, such as contacts, deals, or companies." + }, + "return_annotation": "Details of the associations between HubSpot CRM objects.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "crm_object_type", + "source_object_type" + ], + "description": "Specifies the type of HubSpot CRM object (e.g., contact, deal, company) whose associations you want to retrieve.", + "endpoint_argument_name": "objectType" + }, + { + "name": "hubspot_object_id", + "alternative_names": [ + "crm_object_id", + "entity_object_id" + ], + "description": "The unique identifier for the HubSpot CRM object whose associations are being requested.", + "endpoint_argument_name": "objectId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "destination_object_type", + "related_object_type" + ], + "description": "The type of the target object to which the association is being found. Specify the object type like 'contact', 'deal', 'company', etc.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "paging_offset_after", + "alternative_names": [ + "pagination_after_cursor", + "continue_from_after" + ], + "description": "A string used for pagination to get the next set of results after the specified cursor. Leave empty or omit for the first set of results.", + "endpoint_argument_name": "after" + }, + { + "name": "max_results", + "alternative_names": [ + "results_limit", + "number_of_results" + ], + "description": "Specifies the maximum number of associations to return. Provide an integer value to limit the results.", + "endpoint_argument_name": "limit" + }, + { + "name": "include_full_associations", + "alternative_names": [ + "include_all_associations", + "add_detailed_associations" + ], + "description": "Set to true to include full associations in the response, otherwise only basic associations will be returned.", + "endpoint_argument_name": "includeFA" + } + ] + }, + "method": "GET", + "path": "/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}", + "tags": [ + "Associations" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": 500, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "includeFA", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_hubspot_records", + "description": { + "tagline": "Create or update HubSpot CRM records in batch mode.", + "detailed": "Use this tool to create or update records in HubSpot CRM by specifying a unique property value. The `idProperty` parameter helps identify records uniquely for batch operations." + }, + "return_annotation": "Confirmation of record creation or update in HubSpot CRM.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "hubspot_object_type", + "crm_object_type" + ], + "description": "The type of object in HubSpot CRM (e.g., contacts, companies) to create or update. Specify the object type relevant to your operation.", + "endpoint_argument_name": "objectType" + }, + { + "name": "batch_records_data", + "alternative_names": [ + "records_payload", + "upsert_data" + ], + "description": "JSON array of records to create or update. Each record must include 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of appointments by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_appointments", + "description": { + "tagline": "Search for appointments based on specified criteria.", + "detailed": "Use this tool to search for appointments in the CRM by specifying various criteria. It is useful for finding specific appointments or lists based on search conditions." + }, + "return_annotation": "Appointment search results based on criteria.", + "arguments": [ + { + "name": "appointment_search_criteria_type", + "alternative_names": [ + "criteria_object_type", + "appointment_object_type" + ], + "description": "Specify the type of object for the appointment search, such as 'appointments'. This determines the domain within the CRM to be searched.", + "endpoint_argument_name": "objectType" + }, + { + "name": "appointment_search_criteria", + "alternative_names": [ + "appointment_search_filters", + "appointment_query_parameters" + ], + "description": "JSON object containing search filters like query string, result limit, pagination, sorting, properties to include, and filter groups.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/search", + "tags": [ + "Search" + ], + "summary": "Search for appointments using filters, sorting, and pagination to retrieve specific records.", + "description": "Search for appointments based on specified criteria.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + }, + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"after\",\n \"filterGroups\",\n \"limit\",\n \"properties\",\n \"sorts\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_multiple_appointments", + "description": { + "tagline": "Archive multiple appointments using their IDs.", + "detailed": "" + }, + "return_annotation": "Confirmation of archived appointments.", + "arguments": [ + { + "name": "appointment_object_type", + "alternative_names": [ + "appointment_type_identifier", + "appointment_category" + ], + "description": "The type of object to be archived, typically 'appointments' for this endpoint.", + "endpoint_argument_name": "objectType" + }, + { + "name": "appointments_to_archive", + "alternative_names": [ + "appointments_ids", + "appointments_list" + ], + "description": "A JSON array of appointment objects, each containing an 'id' field, representing the IDs of appointments to be archived.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of appointments by ID", + "description": "Archive multiple appointments using their IDs.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/gdpr-delete", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "gdpr_delete_object", + "description": { + "tagline": "Delete CRM objects in compliance with GDPR.", + "detailed": "This tool removes specified CRM objects in accordance with GDPR regulations. It's used when you need to ensure data is deleted to comply with GDPR requests." + }, + "return_annotation": "Confirmation of GDPR-related object deletion.", + "arguments": [ + { + "name": "object_type_for_gdpr_deletion", + "alternative_names": [ + "gdpr_deletion_object_type", + "crm_object_type_for_gdpr" + ], + "description": "Specify the type of CRM object to delete (e.g., contacts, companies) for GDPR compliance.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_id", + "alternative_names": [ + "crm_object_id", + "entity_id" + ], + "description": "The unique identifier for the CRM object to be deleted under GDPR compliance.", + "endpoint_argument_name": "objectId" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "distinct_property_name" + ], + "description": "Specify a unique property name for the object to be deleted under GDPR.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/gdpr-delete", + "tags": [ + "GDPR" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/crm/objects/v3/{objectType}/{objectId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_crm_object", + "description": { + "tagline": "Fetch CRM object details by ID or unique property.", + "detailed": "Use this tool to retrieve details of a CRM object by specifying the object type and ID. You can control the properties returned using query parameters." + }, + "return_annotation": "Details of the CRM object requested.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "crm_object_type", + "entity_type" + ], + "description": "Specifies the type of CRM object to retrieve, such as \"contacts\", \"companies\", or \"deals\".", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_id", + "alternative_names": [ + "crm_object_id", + "identifier" + ], + "description": "The ID of the CRM object to retrieve. This can be the internal object ID or a unique property value specified by the id_property.", + "endpoint_argument_name": "objectId" + }, + { + "name": "properties_list", + "alternative_names": [ + "return_properties", + "properties_to_retrieve" + ], + "description": "An array of property names to be returned in the response. If any specified properties are not present, they will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List properties to be returned with their historical values. If a property doesn't exist, it'll be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for. Missing associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_identifier_name" + ], + "description": "Specify the name of a property with unique values for this object to identify it instead of the default ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "fetch_only_archived", + "include_archived_only" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/objects/v3/{objectType}/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{appointmentId}`. `{appointmentId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/objects/v3/{objectType}/{objectId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_crm_object", + "description": { + "tagline": "Delete a CRM object and move it to the recycling bin.", + "detailed": "Use this tool to delete an object in HubSpot CRM by specifying the object type and ID. The object will be moved to the recycling bin." + }, + "return_annotation": "Confirmation of object deletion.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "crm_entity_type", + "crm_item_type" + ], + "description": "Specify the type of CRM object to delete, such as 'contact', 'deal', or 'company'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "crm_object_id", + "alternative_names": [ + "object_id_reference", + "crm_item_id" + ], + "description": "The unique identifier for the CRM object to be deleted. This ID specifies which object will be moved to the recycling bin.", + "endpoint_argument_name": "objectId" + } + ] + }, + "method": "DELETE", + "path": "/crm/objects/v3/{objectType}/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{appointmentId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/objects/v3/{objectType}/{objectId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_object", + "description": { + "tagline": "Update specific properties of a HubSpot CRM object.", + "detailed": "This tool performs a partial update of an object in HubSpot CRM, identified by the internal object ID or a unique property value. It overwrites provided property values, errors out on read-only or non-existent properties, and allows clearing values by passing an empty string." + }, + "return_annotation": "Confirmation of the object's partial update status.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "crm_object_type", + "object_category" + ], + "description": "The type of CRM object to update (e.g., contacts, companies).", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_identifier", + "alternative_names": [ + "identifier", + "crm_object_id" + ], + "description": "A string representing the internal object ID or unique property value used to identify the HubSpot CRM object for updating.", + "endpoint_argument_name": "objectId" + }, + { + "name": "properties_to_update", + "alternative_names": [ + "crm_object_properties", + "hubspot_properties_update" + ], + "description": "A JSON object with key-value pairs representing the properties of the HubSpot CRM object to be updated. Key names should match the property's unique names in the CRM system.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "unique_value_property" + ], + "description": "The name of a property whose values are unique for the object, used to identify the object for the update.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/objects/v3/{objectType}/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{appointmentId}`or optionally a unique property value as specified by the `idProperty` query param. `{appointmentId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/objects/v3/{objectType}/merge", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "merge_hubspot_crm_objects", + "description": { + "tagline": "Merge two HubSpot CRM objects into a single entity.", + "detailed": "Use this tool to merge two CRM objects of a specified type within HubSpot. It combines duplicate records into a single object, streamlining the data management process." + }, + "return_annotation": "Confirmation of merged HubSpot CRM objects.", + "arguments": [ + { + "name": "hubspot_object_type", + "alternative_names": [ + "crm_object_type", + "record_type" + ], + "description": "Specify the type of HubSpot CRM object to merge, such as contact, company, or deal.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_id_to_merge", + "alternative_names": [ + "id_to_merge", + "secondary_object_id" + ], + "description": "The ID of the HubSpot CRM object to be merged into the primary object. This should be a string identifier.", + "endpoint_argument_name": "objectIdToMerge" + }, + { + "name": "primary_object_id", + "alternative_names": [ + "main_object_id", + "target_object_id" + ], + "description": "The ID of the primary HubSpot CRM object to retain post-merge.", + "endpoint_argument_name": "primaryObjectId" + } + ] + }, + "method": "POST", + "path": "/crm/objects/v3/{objectType}/merge", + "tags": [ + "Public_Object" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectIdToMerge", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "primaryObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_associations_hubspot", + "description": { + "tagline": "Batch create associations between object types in HubSpot CRM.", + "detailed": "This tool is used to batch create associations between two specified object types in HubSpot CRM, such as associating multiple contacts with companies in one request." + }, + "return_annotation": "Confirmation of batch associations creation.", + "arguments": [ + { + "name": "from_object_type", + "alternative_names": [ + "source_object_type", + "initial_object_type" + ], + "description": "The type of the source object for the association (e.g., 'contact', 'company').", + "endpoint_argument_name": "fromObjectType" + }, + { + "name": "target_object_type", + "alternative_names": [ + "destination_object_type", + "associated_object_type" + ], + "description": "The type of the object that the associations will point to (e.g., 'contacts', 'companies').", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "batch_associations_request", + "alternative_names": [ + "associations_request_body", + "hubspot_associations_data" + ], + "description": "JSON object containing an array of associations. Each entry should specify 'from' and 'to' object IDs and association 'type'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create", + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "fromObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "type": { + "type": "string" + } + }, + "required": [ + "from", + "to", + "type" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"from\",\n \"to\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"example\": {\n \"from\": {\n \"id\": \"53628\"\n },\n \"to\": {\n \"id\": \"12726\"\n },\n \"type\": \"contact_to_company\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_read_associations", + "description": { + "tagline": "Retrieve batch associations between CRM object types in HubSpot.", + "detailed": "This tool retrieves a batch of association data between specified CRM object types in HubSpot, such as contacts to companies. Use it to efficiently access multiple associations at once." + }, + "return_annotation": "Batch of association data between object types.", + "arguments": [ + { + "name": "source_object_type", + "alternative_names": [ + "origin_object_type", + "initial_object_type" + ], + "description": "The CRM object type from which the associations originate, such as 'contacts' or 'deals'. Specify a valid CRM object type.", + "endpoint_argument_name": "fromObjectType" + }, + { + "name": "destination_object_type", + "alternative_names": [ + "target_object_type", + "associated_object_type" + ], + "description": "Specify the CRM object type to associate with, such as 'contacts' or 'companies'.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "batch_association_requests", + "alternative_names": [ + "association_requests_batch", + "batch_of_association_queries" + ], + "description": "A JSON array containing objects with IDs to retrieve the associations for. This enables batch retrieval of association data between specified CRM object types.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read", + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "fromObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "hubspot_batch_archive_associations", + "description": { + "tagline": "Batch archive associations in HubSpot CRM.", + "detailed": "This tool is used to archive multiple associations between specified object types in HubSpot CRM in a single batch operation. Call this tool when you need to efficiently remove associations between records, such as contacts and companies, or deals and tickets, in bulk." + }, + "return_annotation": "Confirmation of batch association archive in CRM.", + "arguments": [ + { + "name": "source_object_type", + "alternative_names": [ + "source_type", + "initial_object_type" + ], + "description": "The type of the source object for the associations to be archived (e.g., 'contacts', 'companies').", + "endpoint_argument_name": "fromObjectType" + }, + { + "name": "target_object_type", + "alternative_names": [ + "destination_object_type", + "related_object_type" + ], + "description": "Specify the type of the object to which the association is directed, e.g., 'company', 'deal'.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "association_batches", + "alternative_names": [ + "batch_association_inputs", + "hubspot_association_entries" + ], + "description": "JSON array containing objects with 'from', 'to', and 'type' for each association to archive. Each object in the array should specify the 'from' and 'to' object IDs and the type of association as strings.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive", + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "fromObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "type": { + "type": "string" + } + }, + "required": [ + "from", + "to", + "type" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"from\",\n \"to\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"example\": {\n \"from\": {\n \"id\": \"53628\"\n },\n \"to\": {\n \"id\": \"12726\"\n },\n \"type\": \"contact_to_company\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/associations/{fromObjectType}/{toObjectType}/types_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_association_types", + "description": { + "tagline": "Get association types between two object types in HubSpot CRM.", + "detailed": "Use this tool to retrieve all association types between specified object types in HubSpot CRM. This is useful when needing to understand the relationships between different entities in the CRM system." + }, + "return_annotation": "The association types between two object types in HubSpot CRM.", + "arguments": [ + { + "name": "source_object_type", + "alternative_names": [ + "origin_object_type", + "initial_object_type" + ], + "description": "Specifies the source object type in HubSpot CRM from which associations are retrieved (e.g., 'contact', 'deal').", + "endpoint_argument_name": "fromObjectType" + }, + { + "name": "target_object_type", + "alternative_names": [ + "object_type_to_associate", + "relationship_target_object_type" + ], + "description": "Specify the type of the destination object to retrieve association types for. These are the related entities in HubSpot CRM.", + "endpoint_argument_name": "toObjectType" + } + ] + }, + "method": "GET", + "path": "/crm/v3/associations/{fromObjectType}/{toObjectType}/types", + "tags": [ + "Types" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "fromObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_calls", + "description": { + "tagline": "Create a batch of calls with specified properties and associations.", + "detailed": "This tool is used to create multiple calls at once in HubSpot CRM, specifying properties for each call and defining associations with other CRM records as needed." + }, + "return_annotation": "Confirmation and details of the created calls batch.", + "arguments": [ + { + "name": "batch_call_data", + "alternative_names": [ + "call_batch_details", + "call_entries" + ], + "description": "JSON object containing details for each call, including properties and associations. The `inputs` array specifies each call with its properties and any associations to CRM records.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of calls", + "description": "Create a batch of calls. The `inputs` array can contain a `properties` object to define property values for each record, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_call_records", + "description": { + "tagline": "Create or update call records in HubSpot CRM.", + "detailed": "This tool allows you to create or update call records in HubSpot CRM. It uses a unique property value specified by the `idProperty` query parameter to identify records that need to be updated or created. Use this tool when you need to batch upsert call records." + }, + "return_annotation": "Confirmation of call records creation or update.", + "arguments": [ + { + "name": "call_records_payload", + "alternative_names": [ + "calls_data", + "call_records_data" + ], + "description": "A JSON array of call records to be upserted, including unique identifiers and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of calls by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_calls_batch", + "description": { + "tagline": "Retrieve a batch of calls by ID from HubSpot CRM.", + "detailed": "Use this tool to fetch details of multiple calls from HubSpot CRM by providing their IDs. It returns information about each call in the batch." + }, + "return_annotation": "Batch of call details.", + "arguments": [ + { + "name": "calls_request_body", + "alternative_names": [ + "batch_calls_payload", + "calls_batch_data" + ], + "description": "A JSON object containing arrays for properties, inputs, and settings for retrieving calls. It includes propertiesWithHistory for key-value pairs to set call properties and their histories, idProperty for custom unique identifiers, inputs array with call IDs, and properties array for additional settings.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "only_archived_calls", + "archived_calls_only" + ], + "description": "Set to 'true' to return only archived calls, 'false' to exclude them.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of calls by internal ID, or unique property values", + "description": "Retrieve a batch of calls by ID.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_calls", + "description": { + "tagline": "Update multiple calls in HubSpot CRM by ID.", + "detailed": "This tool updates a batch of call records in HubSpot CRM using their IDs. Use it to modify details of multiple calls efficiently." + }, + "return_annotation": "Confirmation of batch calls update.", + "arguments": [ + { + "name": "batch_update_request", + "alternative_names": [ + "update_request_data", + "batch_calls_data" + ], + "description": "JSON object containing an array of call updates with 'id', 'idProperty', 'objectWriteTraceId', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of calls by internal ID, or unique property values", + "description": "Update a batch of calls by ID.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/calls_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_calls_page", + "description": { + "tagline": "Retrieve a page of call records from HubSpot CRM.", + "detailed": "This tool is used to retrieve a page of call records from the HubSpot CRM. The response can be customized by specifying the desired call properties through the `properties` query parameter." + }, + "return_annotation": "A page of call details from the CRM system.", + "arguments": [ + { + "name": "results_per_page", + "alternative_names": [ + "max_results_page", + "results_limit" + ], + "description": "The maximum number of call records to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "paging_token" + ], + "description": "The paging cursor token from the last successfully read resource for retrieving the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "call_properties", + "alternative_names": [ + "call_fields", + "call_attributes" + ], + "description": "A list of properties to include in the response, such as call date, duration, etc.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_history" + ], + "description": "A list of properties to return with historical values. Note: Reduces max calls per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Specify object types to retrieve associated IDs for. Comma-separated list. Non-existing associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "archived_results_only", + "fetch_only_archived" + ], + "description": "Set to true to return only archived call records. False will include non-archived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/calls", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of calls. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of calls that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of calls that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_call", + "description": { + "tagline": "Create a call in HubSpot with specified properties.", + "detailed": "Use this tool to create a call in HubSpot CRM with specified properties. It returns the newly created call details, including its ID." + }, + "return_annotation": "Details of the created call, including its ID.", + "arguments": [ + { + "name": "call_properties", + "alternative_names": [ + "call_details", + "call_data" + ], + "description": "JSON object specifying call properties and associations. Includes key-value pairs for call settings and association details like types and IDs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a call with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard calls is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/calls/{callId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_call_details", + "description": { + "tagline": "Retrieve details of a call using its ID in HubSpot CRM.", + "detailed": "This tool fetches the details of a call object in HubSpot CRM using the call ID. It allows optional control over which properties of the call are returned. Use this tool to retrieve specific information on call objects by their unique identification." + }, + "return_annotation": "Call details by specified ID.", + "arguments": [ + { + "name": "call_identifier", + "alternative_names": [ + "unique_call_id", + "call_reference" + ], + "description": "The unique identifier for the call. This can be an internal object ID or a unique property value as specified.", + "endpoint_argument_name": "callId" + }, + { + "name": "return_properties", + "alternative_names": [ + "fetch_properties", + "select_properties" + ], + "description": "Comma-separated list of properties to return in the response. Ignored if not present on requested object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "history_properties", + "historical_properties" + ], + "description": "Comma-separated list of properties to return with history. Ignores non-existent properties.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Specify object types to retrieve associated IDs for. Use comma-separated values.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property", + "unique_identifier" + ], + "description": "Unique property name used to identify the call object in HubSpot CRM.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_archived_results", + "alternative_names": [ + "archived_results_only", + "filter_to_archived" + ], + "description": "Specify `True` to return only archived results, otherwise `False`.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/calls/{callId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{callId}`. `{callId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "callId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/calls/{callId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_call_in_hubspot", + "description": { + "tagline": "Archive a call in HubSpot CRM by moving it to the recycle bin.", + "detailed": "Use this tool to move a specific call, identified by its `callId`, to the recycling bin in HubSpot CRM." + }, + "return_annotation": "Confirmation that the call has been archived.", + "arguments": [ + { + "name": "call_identifier", + "alternative_names": [ + "call_id", + "call_reference" + ], + "description": "The unique identifier for the call to be archived in HubSpot CRM.", + "endpoint_argument_name": "callId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/calls/{callId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{callId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "callId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/calls/{callId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_call_info", + "description": { + "tagline": "Update details of a specific call record in the CRM.", + "detailed": "Use this tool to perform a partial update of a call object in the HubSpot CRM using its `{callId}` or a unique property. Only provided properties will be updated. Read-only and non-existent properties will cause errors." + }, + "return_annotation": "Details of the updated call object.", + "arguments": [ + { + "name": "call_identifier", + "alternative_names": [ + "call_unique_id", + "call_object_id" + ], + "description": "The identifier for the call object you wish to update. This can be the internal call ID or a unique value defined by the `idProperty`.", + "endpoint_argument_name": "callId" + }, + { + "name": "call_update_properties", + "alternative_names": [ + "call_update_fields", + "call_update_data" + ], + "description": "JSON object with key-value pairs for call property updates. Use property names as keys.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "distinct_property_key" + ], + "description": "The name of a unique property for identifying the call object, other than the default ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/calls/{callId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{callId}`or optionally a unique property value as specified by the `idProperty` query param. `{callId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "callId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_calls_batch", + "description": { + "tagline": "Archive a batch of calls by their IDs.", + "detailed": "Use this tool to archive multiple calls in HubSpot CRM by providing their IDs. Archived calls can be restored within 90 days, but call recordings are permanently deleted. Refer to HubSpot's documentation for more details on restoring activities." + }, + "return_annotation": "Confirmation of call batch archiving.", + "arguments": [ + { + "name": "call_ids_to_archive", + "alternative_names": [ + "ids_of_calls_to_archive", + "calls_to_delete_ids" + ], + "description": "A JSON array of objects, each containing the \"id\" key with the call's ID as a string. These are the IDs of calls to be archived.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of calls by ID", + "description": "Archive a batch of calls by ID. Deleted calls can be restored within 90 days of being deleted, but call recordings recording will be permanently deleted. Learn more about [restoring activity records](https://knowledge.hubspot.com/records/restore-deleted-activity-in-a-record).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/calls/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_calls_hubspot", + "description": { + "tagline": "Search and filter call records in HubSpot CRM.", + "detailed": "Use this tool to search for calls in HubSpot CRM by applying filters on properties, searching through associations, and sorting the results. Ideal for retrieving specific call records from your HubSpot CRM." + }, + "return_annotation": "Results of the call search from HubSpot CRM.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "call_search_parameters", + "query_parameters" + ], + "description": "JSON object containing query, limit, sorting, filters, and properties for searching calls. Specify max results, properties to include, and sort order. Use filters to narrow down results.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/calls/search", + "tags": [ + "Search" + ], + "summary": "Search for calls", + "description": "Search for calls by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_carts_batch", + "description": { + "tagline": "Archive multiple carts by ID in a batch operation.", + "detailed": "Use this tool to archive a batch of shopping carts by their IDs in HubSpot CRM. This is useful for managing and organizing outdated or completed carts." + }, + "return_annotation": "Confirmation of carts archived successfully.", + "arguments": [ + { + "name": "cart_ids_to_archive", + "alternative_names": [ + "carts_to_archive", + "cart_ids_batch" + ], + "description": "A JSON array of cart IDs to be archived. Each item should be an object with the key 'id' and its value as a string representing the cart ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of carts by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_carts", + "description": { + "tagline": "Create a batch of carts efficiently in HubSpot CRM.", + "detailed": "Use this tool to create multiple shopping carts at once within HubSpot CRM. Ideal for managing cart data in bulk efficiently." + }, + "return_annotation": "Details of the created carts batch.", + "arguments": [ + { + "name": "carts_batch_data", + "alternative_names": [ + "cart_creation_data", + "batch_cart_input" + ], + "description": "JSON array detailing the carts to create. Includes associations, object IDs, and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of carts", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/carts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_cart_details", + "description": { + "tagline": "Retrieve detailed information about shopping carts.", + "detailed": "Use this tool to get information about shopping carts, with options to specify which details to retrieve via query parameters." + }, + "return_annotation": "Returns details about a page of shopping carts.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_display_limit", + "page_results_count" + ], + "description": "Maximum number of results to display per page when retrieving cart details.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "pagination_token" + ], + "description": "The paging cursor token for retrieving the next set of results. Use the `paging.next.after` from the previous response for more results.", + "endpoint_argument_name": "after" + }, + { + "name": "cart_properties_to_return", + "alternative_names": [ + "cart_attributes_to_fetch", + "returned_cart_details" + ], + "description": "List of properties to include in the response for each cart. Ignored if missing on objects.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history_list", + "alternative_names": [ + "properties_history_list", + "historical_properties_list" + ], + "description": "List of properties to return with their history in the response. Reduces max number of carts per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "linked_object_types" + ], + "description": "List object types to retrieve associated IDs for. Ignored if associations don't exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "show_archived_results", + "include_archived_carts" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/carts", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of carts. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of carts that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of carts that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_cart_hubspot_crm", + "description": { + "tagline": "Create a cart and retrieve its details including ID.", + "detailed": "Use this tool to create a new cart in HubSpot CRM with specified properties. It returns a detailed cart object including its unique ID. Ideal for setting up new customer carts." + }, + "return_annotation": "Cart object with details and ID.", + "arguments": [ + { + "name": "cart_details", + "alternative_names": [ + "cart_properties", + "cart_information" + ], + "description": "JSON object containing associations and properties for the new cart. Includes optional associations with categories and types, and required key-value properties for the cart itself.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a cart with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard carts is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_cart_records", + "description": { + "tagline": "Retrieve cart records by record ID or custom property.", + "detailed": "Use this tool to fetch cart records from HubSpot CRM by specifying record IDs or using a custom unique value property. Ideal for accessing detailed cart information." + }, + "return_annotation": "Details of cart records based on provided IDs.", + "arguments": [ + { + "name": "cart_record_request", + "alternative_names": [ + "cart_query_body", + "cart_data_parameters" + ], + "description": "JSON object containing 'inputs' with record IDs or 'idProperty' for custom retrieval, 'properties' to set values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "only_archived_results", + "alternative_names": [ + "fetch_only_archived", + "retrieve_archived_records" + ], + "description": "Set to true to return only archived results. Default is false.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of carts by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_cart_records", + "description": { + "tagline": "Create or update cart records in HubSpot CRM.", + "detailed": "Use this tool to create or update cart records based on a unique property value specified by the `idProperty`. Ideal for managing cart data in bulk within the HubSpot CRM." + }, + "return_annotation": "Confirmation of cart records creation or update.", + "arguments": [ + { + "name": "cart_records_data", + "alternative_names": [ + "carts_upsert_data", + "batch_carts_payload" + ], + "description": "JSON object containing cart records to be created or updated, including unique `idProperty`, `objectWriteTraceId`, `id`, and key-value `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of carts by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_carts_batch", + "description": { + "tagline": "Update a batch of carts by internal ID or unique properties.", + "detailed": "Use this tool to update multiple carts in HubSpot CRM by their internal IDs or unique property values. Useful for synchronizing cart information in bulk." + }, + "return_annotation": "Information about the updated carts.", + "arguments": [ + { + "name": "carts_update_data", + "alternative_names": [ + "update_cart_payload", + "cart_update_details" + ], + "description": "JSON object containing an array of cart updates. Each update includes an `id` (either internal ID or unique property), `idProperty` (name of the unique property), `objectWriteTraceId` (request identifier), and `properties` (key-value pairs for cart properties).", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of carts by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/carts/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_carts", + "description": { + "tagline": "Search for carts in HubSpot CRM.", + "detailed": "This tool performs a search query to retrieve cart information from HubSpot CRM. It can be used to find specific carts using various search parameters." + }, + "return_annotation": "Search results for HubSpot CRM carts.", + "arguments": [ + { + "name": "search_parameters", + "alternative_names": [ + "query_parameters", + "search_filters" + ], + "description": "JSON object containing search query, limit, paging token, sorting order, properties to retrieve, and filter groups for cart search.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/carts/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/carts/{cartId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_cart_details", + "description": { + "tagline": "Retrieve detailed information of a cart by ID.", + "detailed": "Use this tool to get detailed information about a specific cart in the HubSpot CRM by providing the cart ID. It allows for optional specification of unique property values and controlled return data." + }, + "return_annotation": "Detailed information about a specific cart.", + "arguments": [ + { + "name": "cart_identifier", + "alternative_names": [ + "cart_id_value", + "cart_reference_id" + ], + "description": "The unique identifier for the cart. This can be the internal ID or a unique property value specified by the `idProperty` parameter.", + "endpoint_argument_name": "cartId" + }, + { + "name": "return_properties", + "alternative_names": [ + "response_attributes", + "output_fields" + ], + "description": "List of specific properties to retrieve for the cart. Ignored if properties don't exist.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_past_values", + "properties_with_value_changes" + ], + "description": "Specify properties to retrieve alongside their history of previous values, separated by commas.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for, such as 'deals' or 'contacts'.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_with_unique_values" + ], + "description": "Specify a property name with unique values for the cart object, if not using the default internal ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_return_archived_results", + "alternative_names": [ + "archived_items_only", + "filter_for_archived" + ], + "description": "Set to `true` to return only archived results; `false` includes all.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/carts/{cartId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{cartId}`. `{cartId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "cartId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/carts/{cartId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_shopping_cart", + "description": { + "tagline": "Delete a shopping cart from HubSpot CRM.", + "detailed": "Use this tool to move a shopping cart, identified by its `cartId`, to the recycling bin in HubSpot CRM." + }, + "return_annotation": "Confirmation of cart deletion from CRM.", + "arguments": [ + { + "name": "cart_identifier", + "alternative_names": [ + "cart_id_number", + "shopping_cart_id" + ], + "description": "The unique identifier of the shopping cart to delete from HubSpot CRM. It should be a string.", + "endpoint_argument_name": "cartId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/carts/{cartId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{cartId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "cartId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/carts/{cartId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_cart_properties", + "description": { + "tagline": "Update specific properties of a cart in HubSpot CRM.", + "detailed": "This tool updates specified properties of a cart identified by `cartId` within HubSpot CRM. It's used to perform partial updates, where provided property values are overwritten, and any attempt to modify read-only or non-existent properties will result in an error. Properties can be cleared by passing an empty string." + }, + "return_annotation": "Confirmation of cart property updates.", + "arguments": [ + { + "name": "cart_identifier", + "alternative_names": [ + "cart_id", + "cart_unique_id" + ], + "description": "The unique identifier of the cart to be updated. This is required to specify which cart's properties will be modified.", + "endpoint_argument_name": "cartId" + }, + { + "name": "cart_property_updates", + "alternative_names": [ + "cart_attributes", + "cart_field_changes" + ], + "description": "JSON object with key-value pairs representing the cart properties to update. Keys are property names and values are the new values, or an empty string to clear.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_identifier_property", + "alternative_names": [ + "unique_property_name", + "specific_id_property" + ], + "description": "The name of the property with unique values for this cart object to identify it.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/carts/{cartId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{cartId}`or optionally a unique property value as specified by the `idProperty` query param. `{cartId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "cartId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_commerce_payments", + "description": { + "tagline": "Create or update unique commerce payment records in HubSpot.", + "detailed": "Use this tool to create new commerce payment records or update existing ones in HubSpot CRM. The tool identifies records by a unique property value specified by the `idProperty` query parameter." + }, + "return_annotation": "Confirmation of created or updated payment records.", + "arguments": [ + { + "name": "commerce_payment_records", + "alternative_names": [ + "payment_data_records", + "batch_payment_records" + ], + "description": "A JSON array of records, each with a unique idProperty, including tracing ID, object ID, and key-value properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of commerce payments by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_commerce_payments", + "description": { + "tagline": "Create a batch of commerce payments in HubSpot CRM.", + "detailed": "This tool is used to create a batch of commerce payments in the HubSpot CRM system. It should be called when there's a need to process multiple payment entries at once." + }, + "return_annotation": "Details of the created commerce payments batch.", + "arguments": [ + { + "name": "commerce_payments_batch_data", + "alternative_names": [ + "batch_payment_data", + "commerce_payment_inputs" + ], + "description": "A JSON object containing an array of payment entries to process. Each entry requires specifics such as 'associations', 'objectWriteTraceId', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of commerce payments", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/commerce_payments/{commercePaymentId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_commerce_payment_details", + "description": { + "tagline": "Retrieve details of a specific commerce payment using its ID.", + "detailed": "Use this tool to obtain detailed information about a commerce payment by specifying its unique ID. This can include any details specified by the `properties` query parameter, if required." + }, + "return_annotation": "Detailed information about a specific commerce payment.", + "arguments": [ + { + "name": "commerce_payment_id", + "alternative_names": [ + "payment_id", + "transaction_id" + ], + "description": "The unique identifier for the commerce payment to retrieve details for. It corresponds to the internal object ID by default.", + "endpoint_argument_name": "commercePaymentId" + }, + { + "name": "return_properties", + "alternative_names": [ + "properties_to_return", + "response_properties" + ], + "description": "A list of property names to be included in the response. Irrelevant properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_property_values", + "property_history_list" + ], + "description": "List of properties to retrieve along with their historical values. Specify as comma-separated values.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_types", + "linked_objects" + ], + "description": "List of object types to retrieve associated IDs for. If any specified associations do not exist, they are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property", + "unique_id_property" + ], + "description": "The property name used as a unique identifier for the commerce payment object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_return_archived_results", + "alternative_names": [ + "archived_results_only", + "show_only_archived" + ], + "description": "Specify `true` to return only archived results. Default is `false`.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/commerce_payments/{commercePaymentId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{commercePaymentId}`. `{commercePaymentId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "commercePaymentId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/commerce_payments/{commercePaymentId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_commerce_payment", + "description": { + "tagline": "Delete a commerce payment from the CRM system.", + "detailed": "Use this tool to move a specified commerce payment to the recycling bin by providing the payment ID." + }, + "return_annotation": "Confirmation of payment deletion.", + "arguments": [ + { + "name": "commerce_payment_id", + "alternative_names": [ + "payment_id", + "commerce_payment_identifier" + ], + "description": "The unique identifier for the commerce payment to be moved to the recycling bin.", + "endpoint_argument_name": "commercePaymentId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/commerce_payments/{commercePaymentId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{commercePaymentId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "commercePaymentId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/commerce_payments/{commercePaymentId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_commerce_payment", + "description": { + "tagline": "Partially update a commerce payment by ID or unique property.", + "detailed": "Use this tool to perform a partial update of a commerce payment object identified by its internal ID or a unique property specified by `idProperty`. Ensure provided property values exist and are not read-only; this will overwrite them. To clear a value, pass an empty string." + }, + "return_annotation": "Confirmation of commerce payment update.", + "arguments": [ + { + "name": "commerce_payment_id", + "alternative_names": [ + "payment_id", + "transaction_id" + ], + "description": "The internal ID of the commerce payment to update. This ID identifies the specific payment object within the system.", + "endpoint_argument_name": "commercePaymentId" + }, + { + "name": "commerce_payment_update_properties", + "alternative_names": [ + "payment_update_data", + "update_fields" + ], + "description": "A JSON object containing key-value pairs for properties to update in the commerce payment. Include only existing and writable properties. Use empty strings to clear values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "property_identifier", + "unique_field_name" + ], + "description": "The name of a unique property for identifying the object. Use this if not using the default internal ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/commerce_payments/{commercePaymentId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{commercePaymentId}`or optionally a unique property value as specified by the `idProperty` query param. `{commercePaymentId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "commercePaymentId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_commerce_payments_batch", + "description": { + "tagline": "Archive a batch of commerce payments by ID.", + "detailed": "Use this tool to archive multiple commerce payments at once by their IDs. Ideal for managing and organizing payment data efficiently by removing outdated or unnecessary records in batches." + }, + "return_annotation": "Confirmation of archived commerce payments batch.", + "arguments": [ + { + "name": "commerce_payment_ids_to_archive", + "alternative_names": [ + "payment_ids_batch", + "payments_to_archive" + ], + "description": "A JSON array of commerce payment IDs to be archived. Include each ID as a string in the array.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of commerce payments by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_commerce_payments_batch", + "description": { + "tagline": "Update a batch of commerce payments by internal ID or unique values.", + "detailed": "Use this tool to update multiple commerce payments in HubSpot CRM by providing their internal IDs or unique property values, allowing for efficient bulk modifications." + }, + "return_annotation": "Batch update confirmation for commerce payments.", + "arguments": [ + { + "name": "commerce_payments_update_batch", + "alternative_names": [ + "payments_batch_update", + "batch_payment_update" + ], + "description": "JSON array containing objects with 'id', 'idProperty', and 'properties' to specify updates for each payment. Include 'objectWriteTraceId' for tracing.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of commerce payments by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_commerce_payment_records", + "description": { + "tagline": "Retrieve commerce payment records by ID or unique property.", + "detailed": "This tool is used to fetch commerce payment records from HubSpot CRM by specifying record IDs or using a custom unique property for retrieval." + }, + "return_annotation": "Commerce payment records based on IDs or custom properties.", + "arguments": [ + { + "name": "commerce_payment_request_body", + "alternative_names": [ + "payment_records_payload", + "payment_data_input" + ], + "description": "Provide JSON data with properties, idProperty, and record IDs to fetch payment records.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_results_only", + "alternative_names": [ + "archived_records_only", + "fetch_only_archived_records" + ], + "description": "Return only archived commerce payment records if set to true.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of commerce payments by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_commerce_payments", + "description": { + "tagline": "Search for commerce payments in HubSpot CRM.", + "detailed": "Use this tool to search for commerce payments within the HubSpot CRM. It should be called when you need to retrieve payment information from the CRM database." + }, + "return_annotation": "Search results for commerce payments.", + "arguments": [ + { + "name": "commerce_payment_search_request", + "alternative_names": [ + "payment_search_request", + "payment_query_details" + ], + "description": "JSON body containing search parameters for commerce payments, including query, limit, pagination, sorting, and filters.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/commerce_payments", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_commerce_payments", + "description": { + "tagline": "Retrieve a page of commerce payments from HubSpot CRM.", + "detailed": "This tool allows you to retrieve a page of commerce payments from HubSpot CRM, with customizable properties." + }, + "return_annotation": "A page of commerce payment data with specified properties.", + "arguments": [ + { + "name": "results_per_page", + "alternative_names": [ + "max_results_per_page", + "page_size" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "after_token", + "next_page_token" + ], + "description": "The paging cursor token from the last successfully read resource. Used for paginating through results.", + "endpoint_argument_name": "after" + }, + { + "name": "returned_properties", + "alternative_names": [ + "response_properties", + "output_properties" + ], + "description": "List the properties to return in the response. Non-present properties are ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_history", + "properties_with_previous_values" + ], + "description": "A list of properties to be returned with their historical values. Reduces the maximum payments per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associations_to_retrieve", + "alternative_names": [ + "associated_object_types", + "related_association_ids" + ], + "description": "List of object types to retrieve associated IDs for. Non-existing associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "show_only_archived", + "alternative_names": [ + "only_archived_results", + "retrieve_archived_only" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/commerce_payments", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of commerce payments. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of commerce payments that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of commerce payments that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/commerce_payments", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_commerce_payment", + "description": { + "tagline": "Create a commerce payment and return its details.", + "detailed": "Use this tool to create a new commerce payment in the HubSpot CRM. It returns the details of the payment, including the unique ID." + }, + "return_annotation": "Details of the created commerce payment, including the ID.", + "arguments": [ + { + "name": "commerce_payment_properties", + "alternative_names": [ + "payment_properties", + "new_commerce_payment_data" + ], + "description": "JSON object containing key-value pairs to set properties for the new commerce payment, including associations and their details.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/commerce_payments", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a commerce payment with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard commerce payments is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.commercepayments.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_subscription_batch", + "description": { + "tagline": "Update multiple subscriptions by ID or property values.", + "detailed": "This tool updates a batch of subscriptions using their internal IDs or unique property values in HubSpot CRM. Use it when you need to modify details for multiple subscriptions simultaneously." + }, + "return_annotation": "Confirmation of subscription updates.", + "arguments": [ + { + "name": "subscription_update_details", + "alternative_names": [ + "update_details_payload", + "batch_subscription_data" + ], + "description": "A JSON array of subscription details to update. Each item must include 'id', 'idProperty', 'objectWriteTraceId', and 'properties'. Use 'id' for the object or unique property ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of subscriptions by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_subscriptions_batch", + "description": { + "tagline": "Archive a batch of subscriptions by ID in HubSpot CRM.", + "detailed": "Use this tool to archive multiple subscriptions at once by providing their IDs. This is useful for managing bulk subscription updates in HubSpot CRM." + }, + "return_annotation": "Confirmation of archived subscriptions.", + "arguments": [ + { + "name": "subscription_ids_to_archive", + "alternative_names": [ + "ids_for_archiving", + "archive_ids" + ], + "description": "A JSON array of subscription IDs to archive. Each entry should include an 'id' field as a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of subscriptions by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_subscriptions", + "description": { + "tagline": "Search for subscriptions in HubSpot CRM.", + "detailed": "Use this tool to search and retrieve details of specific subscriptions from HubSpot CRM based on given criteria." + }, + "return_annotation": "Details of matching HubSpot subscriptions.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "subscription_search_criteria", + "hubspot_search_parameters" + ], + "description": "A JSON object containing query, filters, sorting options, and properties to refine the subscription search in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.subscriptions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/subscriptions", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_subscription_data", + "description": { + "tagline": "Fetch a page of subscription data from HubSpot CRM.", + "detailed": "This tool retrieves a page of subscription data from HubSpot CRM. Use this tool to access subscription information, with options to control the returned data via query parameters." + }, + "return_annotation": "A list of subscription data objects.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "page_result_limit", + "results_limit" + ], + "description": "The maximum number of subscription results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "pagination_token", + "next_page_cursor" + ], + "description": "The token indicating the last successfully read resource, used for pagination in subsequent requests.", + "endpoint_argument_name": "after" + }, + { + "name": "requested_properties", + "alternative_names": [ + "returned_properties", + "subscription_properties" + ], + "description": "A list of property names to be included in the response. If a specified property is not present in the requested objects, it will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_history_list", + "historical_properties" + ], + "description": "List of property names for retrieving their values and history. Reduces max subscriptions per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "associated_ids", + "linked_objects" + ], + "description": "List of object types to retrieve associated IDs for. Ignored if not existing.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "show_archived_only", + "include_only_archived" + ], + "description": "Set to true to return only archived results. Set to false to include active results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/subscriptions", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of subscriptions. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.subscriptions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of subscriptions that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of subscriptions that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_subscription", + "description": { + "tagline": "Create a new subscription in HubSpot CRM.", + "detailed": "This tool creates a subscription in HubSpot CRM using specified properties and returns a copy of the object with its ID included. Use it to add new subscriptions to the CRM system." + }, + "return_annotation": "Details of the created subscription, including its ID.", + "arguments": [ + { + "name": "subscription_details", + "alternative_names": [ + "subscription_data", + "subscription_payload" + ], + "description": "JSON object containing key-value pairs for subscription properties and associations. Use it to define the subscription attributes and related entities.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a subscription with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard subscriptions is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_subscriptions_in_hubspot_crm", + "description": { + "tagline": "Batch create or update subscription records in HubSpot CRM.", + "detailed": "Use this tool to create or update subscription records based on a unique property value in HubSpot CRM. It's ideal for ensuring your subscription data is up-to-date by specifying an `idProperty` for uniquely identifying existing records." + }, + "return_annotation": "Confirmation of batch upsert operation for subscriptions.", + "arguments": [ + { + "name": "subscription_records", + "alternative_names": [ + "subscription_batch_data", + "sub_records" + ], + "description": "A JSON array of objects representing subscription records to upsert. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties` with key-value pairs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of subscriptions by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_subscription_records", + "description": { + "tagline": "Retrieve subscription records by ID or unique property.", + "detailed": "Use this tool to fetch subscription records from HubSpot CRM by providing record IDs or a custom unique value property. Ideal for accessing specific subscription details quickly." + }, + "return_annotation": "Subscription records based on specified IDs or properties.", + "arguments": [ + { + "name": "subscription_request_payload", + "alternative_names": [ + "subscription_data_body", + "retrieve_request_body" + ], + "description": "Payload containing properties and IDs for retrieving subscription records. Specify `idProperty` for custom unique value retrieval or use `inputs` for record IDs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "only_archived_records", + "alternative_names": [ + "archived_only", + "retrieve_only_archived" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of subscriptions by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.subscriptions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/subscriptions/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_subscriptions", + "description": { + "tagline": "Create a batch of subscriptions in HubSpot CRM.", + "detailed": "This tool is used to create multiple subscriptions at once in HubSpot CRM. Call this tool when you need to add several subscriptions simultaneously." + }, + "return_annotation": "Confirmation of subscriptions batch creation.", + "arguments": [ + { + "name": "subscription_batch_data", + "alternative_names": [ + "batch_subscription_payload", + "subscription_creation_data" + ], + "description": "A JSON payload containing arrays of subscription data, including associations and properties for each subscription to be created in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/subscriptions/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of subscriptions", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/subscriptions/{subscriptionId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_subscription_details", + "description": { + "tagline": "Retrieve details of a specific subscription by ID.", + "detailed": "This tool is used to fetch the details of a subscription object identified by its subscription ID. It allows control over what is returned using query parameters." + }, + "return_annotation": "Subscription object details based on the provided ID.", + "arguments": [ + { + "name": "subscription_id", + "alternative_names": [ + "subscription_identifier", + "id_for_subscription" + ], + "description": "The unique identifier for the subscription object to be retrieved. This can be the internal object ID or a unique property value specified by the idProperty query param.", + "endpoint_argument_name": "subscriptionId" + }, + { + "name": "requested_properties", + "alternative_names": [ + "properties_list", + "return_properties" + ], + "description": "List of properties to return in the response. Properties not present in the object will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_history" + ], + "description": "A list of property names whose values and history are to be retrieved for the subscription. Properties not present on the object will be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "association_types_to_retrieve", + "alternative_names": [ + "associated_object_types", + "related_entity_types" + ], + "description": "A list of object types to retrieve associated IDs for. Non-existing associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "unique_field_name" + ], + "description": "The property name used to uniquely identify the subscription object instead of the default ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_archived_results", + "alternative_names": [ + "archived_results_only", + "return_only_archived" + ], + "description": "Set to true to return only archived items, false to exclude them.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/subscriptions/{subscriptionId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{subscriptionId}`. `{subscriptionId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.subscriptions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "subscriptionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/subscriptions/{subscriptionId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_subscription", + "description": { + "tagline": "Delete a specific subscription from HubSpot CRM.", + "detailed": "This tool deletes a subscription identified by `subscriptionId` from HubSpot CRM, moving it to the recycling bin. Use this when you need to remove a subscription object from the system." + }, + "return_annotation": "Confirms deletion of a subscription from HubSpot CRM.", + "arguments": [ + { + "name": "subscription_id", + "alternative_names": [ + "subscription_identifier", + "subscription_code" + ], + "description": "The unique identifier of the subscription to be deleted. This moves the subscription to the recycling bin in HubSpot CRM.", + "endpoint_argument_name": "subscriptionId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/subscriptions/{subscriptionId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{subscriptionId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "subscriptionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/subscriptions/{subscriptionId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_subscription", + "description": { + "tagline": "Update subscription details using provided property values.", + "detailed": "Use this tool to perform a partial update of a subscription object in HubSpot CRM. Identify the object by its internal ID or a unique property value using the `idProperty` query parameter. Overwrite properties by providing new values; clear them by passing an empty string. Errors occur for read-only or non-existent properties." + }, + "return_annotation": "Returns the result of the subscription update operation.", + "arguments": [ + { + "name": "subscription_id", + "alternative_names": [ + "object_id", + "unique_id" + ], + "description": "The identifier for the subscription to update, typically the internal object ID. Specify this to target the right subscription.", + "endpoint_argument_name": "subscriptionId" + }, + { + "name": "subscription_properties", + "alternative_names": [ + "subscription_updates", + "update_properties" + ], + "description": "JSON object with key-value pairs representing properties to update for the subscription. Clear properties with an empty string.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_for_id" + ], + "description": "The name of a unique property to identify the subscription object for updating.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/subscriptions/{subscriptionId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{subscriptionId}`or optionally a unique property value as specified by the `idProperty` query param. `{subscriptionId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "subscriptionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_messages_batch", + "description": { + "tagline": "Update a batch of messages in HubSpot CRM.", + "detailed": "Use this tool to update multiple messages at once in HubSpot CRM by specifying either the communication ID or a unique property value. Only provided property values will be updated, and non-existent properties or read-only fields will cause errors. Include empty strings to clear properties." + }, + "return_annotation": "Confirmation of messages update operation.", + "arguments": [ + { + "name": "messages_batch_update_payload", + "alternative_names": [ + "batch_update_payload", + "update_messages_payload" + ], + "description": "A JSON object containing an array of messages to be updated. Each message specifies either a `communicationId` or `idProperty` with properties to update. Properties can be cleared with an empty string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of communications by internal ID, or unique property values", + "description": "Update a batch of messages by ID (`communicationId`) or unique property value (`idProperty`). Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_batch_messages", + "description": { + "tagline": "Delete a batch of messages by ID with restoration option.", + "detailed": "Delete multiple messages by their IDs. Deleted messages can be restored within 90 days." + }, + "return_annotation": "Confirmation of messages deleted with restoration details.", + "arguments": [ + { + "name": "message_ids_to_delete", + "alternative_names": [ + "batch_ids_to_remove", + "message_batch_deletion_ids" + ], + "description": "A JSON array of message IDs to delete. Each ID must be a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of communications by ID", + "description": "Delete a batch of messages by ID. A deleted message can be restored within 90 days of being deleted. Learn more about [restoring activity records](https://knowledge.hubspot.com/records/restore-deleted-activity-in-a-record).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_communications_records", + "description": { + "tagline": "Create or update communication records in bulk.", + "detailed": "This tool allows you to batch create or update communication records in HubSpot CRM based on a unique property value. Utilize this tool when you need to synchronize communication data and ensure records are accurately up-to-date." + }, + "return_annotation": "Details of the created or updated communication records.", + "arguments": [ + { + "name": "communication_records_data", + "alternative_names": [ + "records_input_data", + "communication_objects_data" + ], + "description": "A JSON array of objects, each containing 'idProperty', 'objectWriteTraceId', 'id', and 'properties' to define the records for upsertion.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of communications by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/communications_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_communications_page", + "description": { + "tagline": "Retrieve a page of communications from HubSpot CRM.", + "detailed": "Use this tool to read a page of communications. You can control the information returned using query parameters for specific properties." + }, + "return_annotation": "Details of the communications page retrieved.", + "arguments": [ + { + "name": "results_per_page", + "alternative_names": [ + "max_results_per_page", + "page_size" + ], + "description": "The maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_paging_cursor", + "continuation_token" + ], + "description": "The paging cursor token for the next set of results to read from the previous request's `paging.next.after` JSON property.", + "endpoint_argument_name": "after" + }, + { + "name": "specified_properties", + "alternative_names": [ + "desired_properties_list", + "response_properties" + ], + "description": "List of communication properties to return in the response. Properties not present will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "property_history" + ], + "description": "A list of properties to return with their history. Reduces the maximum number of communications per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associations", + "alternative_names": [ + "retrieve_associated_ids", + "get_associations_list" + ], + "description": "Comma-separated list of object types to get associated IDs for. Ignored if the association doesn't exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "retrieve_archived_only", + "fetch_only_archived" + ], + "description": "Set to true to return only archived results. False includes all results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/communications", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of communications. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of communications that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of communications that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_communication", + "description": { + "tagline": "Create a new communication entry in HubSpot CRM.", + "detailed": "This tool creates a communication in HubSpot CRM with specified properties and returns the created object, including its ID. Use this when you need to log or track communications within the CRM." + }, + "return_annotation": "Returns the created communication object with its ID.", + "arguments": [ + { + "name": "communication_details", + "alternative_names": [ + "communication_data", + "communication_payload" + ], + "description": "JSON object containing associations and properties for creating the communication. 'associations' involves details on related entities, 'properties' includes key-value pairs for setting the new communication's attributes.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a communication with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard communications is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/communications/{communicationId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_communication_by_id", + "description": { + "tagline": "Retrieve details of a communication by its ID.", + "detailed": "Use this tool to obtain the details of a communication object by specifying its unique ID. The ID can be the internal object ID or any unique property value. You can control the returned data using query parameters." + }, + "return_annotation": "Details of the specified communication object.", + "arguments": [ + { + "name": "communication_identifier", + "alternative_names": [ + "communication_id", + "communication_unique_id" + ], + "description": "Specify the unique ID or property value for the communication object to retrieve.", + "endpoint_argument_name": "communicationId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "properties_list", + "return_properties" + ], + "description": "Comma-separated list of properties to include in the response. Missing properties are ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "property_history_list" + ], + "description": "List the properties whose history of values should be returned. Comma-separated values are expected.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "alternative_names": [ + "fetch_associated_object_types", + "get_associated_object_types" + ], + "description": "A list of object types for retrieving associated IDs. Non-existing associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "id_property_name" + ], + "description": "The property name used to uniquely identify the communication object. Allows retrieval by non-default identifiers.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "fetch_archived_items_only", + "retrieve_only_archived" + ], + "description": "Set to true to return only results that have been archived. Defaults to false to include non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/communications/{communicationId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{communicationId}`. `{communicationId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "communicationId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/communications/{communicationId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_communication", + "description": { + "tagline": "Archive a communication by its ID.", + "detailed": "Use this tool to move a communication object to the recycling bin by specifying its ID." + }, + "return_annotation": "Confirms the communication has been archived.", + "arguments": [ + { + "name": "communication_id", + "alternative_names": [ + "communication_id_number", + "comm_id" + ], + "description": "The unique identifier for the communication object to be archived. It must be a valid string representing an existing communication ID.", + "endpoint_argument_name": "communicationId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/communications/{communicationId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{communicationId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "communicationId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/communications/{communicationId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_communication_details", + "description": { + "tagline": "Update communication object details in HubSpot CRM.", + "detailed": "Perform a partial update of a HubSpot CRM communication object using its `communicationId` or a unique property value. This tool overwrites provided property values, with errors for read-only or non-existent properties." + }, + "return_annotation": "Details of the updated communication object.", + "arguments": [ + { + "name": "communication_id", + "alternative_names": [ + "comms_id", + "comm_unique_identifier" + ], + "description": "The internal object ID of the communication. Used to identify which communication object to update.", + "endpoint_argument_name": "communicationId" + }, + { + "name": "update_properties", + "alternative_names": [ + "properties_to_update", + "communication_properties" + ], + "description": "JSON key-value pairs representing the properties of the communication object to be updated. Read-only and non-existent properties will result in an error. Pass an empty string to clear a property value.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "distinct_property_name" + ], + "description": "The unique property name used to identify the communication object if not using `communicationId`. It must refer to a property with unique values for the object.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/communications/{communicationId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{communicationId}`or optionally a unique property value as specified by the `idProperty` query param. `{communicationId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "communicationId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_crm_messages", + "description": { + "tagline": "Search and filter CRM messages based on various criteria.", + "detailed": "Use this tool to search for messages in the CRM by applying filters on properties, checking associations, and sorting the results. Ideal for retrieving specific communications data within the HubSpot CRM." + }, + "return_annotation": "Filtered and sorted list of CRM messages.", + "arguments": [ + { + "name": "search_parameters", + "alternative_names": [ + "query_parameters", + "crm_message_filters" + ], + "description": "A JSON object defining the search query, limit, paging cursor token, sorting order, properties to include, and filter groups for HubSpot CRM messages.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications/search", + "tags": [ + "Search" + ], + "summary": "Search for messages", + "description": "Search for messages by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_batch_communications", + "description": { + "tagline": "Retrieve a batch of communication messages by ID.", + "detailed": "This tool retrieves a batch of communication messages from the HubSpot CRM using either the message ID or a unique property value. It should be called when you need to access multiple messages simultaneously." + }, + "return_annotation": "Batch of retrieved communication messages.", + "arguments": [ + { + "name": "communication_batch_request_body", + "alternative_names": [ + "message_batch_request_body", + "batch_communications_request_body" + ], + "description": "JSON object with properties: 'propertiesWithHistory' (key-value pairs with histories), 'idProperty' (custom unique property name), 'inputs' (array with 'id' strings), 'properties' (key-value pairs).", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_results_only", + "fetch_only_archived" + ], + "description": "Set to True to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of communications by internal ID, or unique property values", + "description": "Retrieve a batch of messages by ID (`communicationId`) or unique property value (`idProperty`). ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/communications/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_messages_batch", + "description": { + "tagline": "Create a batch of messages in HubSpot CRM.", + "detailed": "Use this tool to create multiple messages in HubSpot CRM simultaneously. Ideal for handling bulk message creation with optional properties and associations with other CRM records." + }, + "return_annotation": "Details of the created batch of messages.", + "arguments": [ + { + "name": "messages_batch_input", + "alternative_names": [ + "communications_batch_input", + "batch_messages_payload" + ], + "description": "JSON object containing the `inputs` array for message properties and associations. Each element should specify message details and CRM associations.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/communications/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of communications", + "description": "Create a batch of messages. The `inputs` array can contain a `properties` object to define property values for each message, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_batch_companies_hubspot", + "description": { + "tagline": "Retrieve a batch of company records from HubSpot CRM.", + "detailed": "Use this tool to retrieve multiple companies from HubSpot CRM by specifying their IDs or unique properties. You can customize the returned data using the `properties` query parameter." + }, + "return_annotation": "A batch of company data based on IDs or unique properties.", + "arguments": [ + { + "name": "batch_companies_request_body", + "alternative_names": [ + "company_batch_request_body", + "retrieve_companies_request_body" + ], + "description": "JSON object containing 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties' to specify company retrieval criteria.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "fetch_archived_companies", + "include_archived_companies" + ], + "description": "Set to true to return only archived companies in the results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/batch/read", + "tags": [ + "Batch" + ], + "summary": "Retrieve a batch of companies", + "description": "Retrieve a batch of companies by ID (`companyId`) or by a unique property (`idProperty`). You can specify what is returned using the `properties` query parameter.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/companies_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_all_companies", + "description": { + "tagline": "Retrieve all companies from HubSpot CRM.", + "detailed": "This tool retrieves all companies from the HubSpot CRM. It uses query parameters to control the information that gets returned, such as filtering or specifying fields. Useful for getting a comprehensive list of companies stored in the CRM." + }, + "return_annotation": "Information on all companies from the CRM.", + "arguments": [ + { + "name": "results_per_page_limit", + "alternative_names": [ + "max_results_page", + "number_of_results_page" + ], + "description": "The maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "continuation_token" + ], + "description": "The cursor token to fetch the next set of results in a paginated response.", + "endpoint_argument_name": "after" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "fields_to_include", + "selected_properties" + ], + "description": "List of properties to include in the response. Ignore if not present on the object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_history_fields", + "historical_properties" + ], + "description": "A list of properties to return with their history of previous values. This reduces max companies per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "archived_results_only", + "fetch_archived_only" + ], + "description": "Set to true to return only archived results in the response.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/companies", + "tags": [ + "Basic" + ], + "summary": "Retrieve companies", + "description": "Retrieve all companies, using query parameters to control the information that gets returned.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of companies that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of companies that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_company_hubspot", + "description": { + "tagline": "Create a new company in HubSpot CRM.", + "detailed": "Use this tool to create a single company in HubSpot CRM. It allows you to define property values for the company and specify associations with other CRM records. Ideal for organizing and managing company information efficiently." + }, + "return_annotation": "Details about the created company in HubSpot CRM.", + "arguments": [ + { + "name": "company_data", + "alternative_names": [ + "company_details", + "company_information" + ], + "description": "JSON object containing company properties and associations. Include a 'properties' object for company property values and an 'associations' array for linking with other CRM records.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies", + "tags": [ + "Basic" + ], + "summary": "Create a company", + "description": "Create a single company. Include a `properties` object to define [property values](https://developers.hubspot.com/docs/guides/api/crm/properties) for the company, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The company property values to set." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "The company property values to set.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The company property values to set.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_companies_in_hubspot", + "description": { + "tagline": "Search for companies in HubSpot CRM using filters and sorting.", + "detailed": "This tool allows you to search for companies in HubSpot CRM by applying filters, associating searches, and sorting the results. It is useful for retrieving company information based on specific criteria quickly." + }, + "return_annotation": "Search results for companies with specified filters.", + "arguments": [ + { + "name": "company_search_criteria", + "alternative_names": [ + "companies_query_parameters", + "firm_search_parameters" + ], + "description": "JSON object containing search parameters like query, filters, property inclusion, sorting, and pagination for finding companies in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/search", + "tags": [ + "Search" + ], + "summary": "Search for companies", + "description": "Search for companies by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/companies/{companyId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_company_by_id", + "description": { + "tagline": "Retrieve detailed company information using its ID.", + "detailed": "Use this tool to get detailed information about a company by providing its ID or a unique property. You can specify which properties to retrieve." + }, + "return_annotation": "Details of a specific company by ID or unique property.", + "arguments": [ + { + "name": "company_identifier", + "alternative_names": [ + "company_id", + "unique_company_id" + ], + "description": "A unique identifier for the company, such as its ID or a unique property name, used to retrieve its details.", + "endpoint_argument_name": "companyId" + }, + { + "name": "company_properties_to_retrieve", + "alternative_names": [ + "properties_list", + "requested_company_properties" + ], + "description": "List the specific company properties to retrieve, separated by commas. Ignored if properties are unavailable.", + "endpoint_argument_name": "properties" + }, + { + "name": "retrieve_properties_with_history", + "alternative_names": [ + "fetch_properties_history", + "get_properties_with_history" + ], + "description": "List of properties to return with their history of previous values. Ignored if properties aren't present.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_entities", + "linked_ids" + ], + "description": "A list of object types to retrieve associated IDs for. Ignores non-existent associations.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property", + "unique_identifier" + ], + "description": "The name of a unique property to identify the company. Used instead of company ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "show_archived_exclusively", + "fetch_archived_only" + ], + "description": "Set to true to return only archived results. If false, non-archived results will be returned.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/companies/{companyId}", + "tags": [ + "Basic" + ], + "summary": "Retrieve a company", + "description": "Retrieve a company by its ID (`companyId`) or by a unique property (`idProperty`). You can specify what is returned using the `properties` query parameter.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "companyId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/companies/{companyId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_company", + "description": { + "tagline": "Delete a company by ID in HubSpot CRM.", + "detailed": "Use this tool to delete a company by its ID in HubSpot CRM. Deleted companies can be restored within 90 days if needed." + }, + "return_annotation": "Confirmation of the company's deletion.", + "arguments": [ + { + "name": "company_id", + "alternative_names": [ + "company_identifier", + "company_id_number" + ], + "description": "The unique identifier of the company to be deleted in HubSpot CRM. This ID is required to specify the company.", + "endpoint_argument_name": "companyId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/companies/{companyId}", + "tags": [ + "Basic" + ], + "summary": "Archive a company", + "description": "Delete a company by ID. Deleted companies can be restored within 90 days of deletion. Learn more about [restoring records](https://knowledge.hubspot.com/records/restore-deleted-records).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "companyId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/companies/{companyId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_company", + "description": { + "tagline": "Update a company's details in HubSpot CRM using its ID.", + "detailed": "Use this tool to update a company's information in HubSpot CRM by specifying the `companyId` or a unique property. Only existing and writable properties can be updated. Properties can be cleared by passing an empty string." + }, + "return_annotation": "Confirmation of the company's updated information.", + "arguments": [ + { + "name": "company_unique_identifier", + "alternative_names": [ + "hubspot_company_id", + "company_unique_key" + ], + "description": "The unique identifier for the company to be updated, either the companyId or a unique property value.", + "endpoint_argument_name": "companyId" + }, + { + "name": "company_properties_update", + "alternative_names": [ + "company_info_update", + "company_details_update" + ], + "description": "A JSON object specifying the company property values to set or clear. Only existing and writable properties can be updated. Pass an empty string to clear a property.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "unique_identifier_property" + ], + "description": "Specify the name of the unique property used to identify the company.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/companies/{companyId}", + "tags": [ + "Basic" + ], + "summary": "Update a company", + "description": "Update a company by ID (`companyId`) or unique property value (`idProperty`). Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "companyId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The company property values to set." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "The company property values to set.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The company property values to set.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_or_update_companies", + "description": { + "tagline": "Create or update companies in HubSpot CRM using a unique identifier.", + "detailed": "This tool creates or updates companies in the HubSpot CRM based on a unique identifier property. It should be called when you need to batch upsert company records identified by a unique property." + }, + "return_annotation": "Confirmation of companies created or updated in HubSpot CRM.", + "arguments": [ + { + "name": "company_data_batch", + "alternative_names": [ + "batch_company_data", + "company_records" + ], + "description": "A JSON array of objects, each containing 'idProperty', 'objectWriteTraceId', 'id', and 'properties', to specify unique company identifiers and their details for upserting.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of companies by unique property values", + "description": "Create or update companies identified by a unique property value as specified by the `idProperty` query parameter. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_of_companies", + "description": { + "tagline": "Update multiple company records in HubSpot by ID.", + "detailed": "This tool allows batch updating of company records in the HubSpot CRM. It should be called when there is a need to update information for multiple companies at once, using their unique IDs." + }, + "return_annotation": "Confirmation of updated companies' information.", + "arguments": [ + { + "name": "companies_update_payload", + "alternative_names": [ + "companies_update_data", + "batch_update_payload" + ], + "description": "JSON array of company objects, each with 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of companies", + "description": "Update a batch of companies by ID.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_companies", + "description": { + "tagline": "Create a batch of companies with properties and associations.", + "detailed": "This tool allows you to create multiple companies in one request. Each company can have specific property values and can be associated with other CRM records. Use this when needing to add several companies at once along with their details and relationships." + }, + "return_annotation": "Confirmation of created companies and any associations.", + "arguments": [ + { + "name": "company_batch_data", + "alternative_names": [ + "companies_input_data", + "batch_company_details" + ], + "description": "JSON array containing company data, each with `properties` for company details and `associations` to link with other CRM records.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of companies", + "description": "Create a batch of companies. The `inputs` array can contain a `properties` object to define property values for each company, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_companies_batch", + "description": { + "tagline": "Delete a batch of companies by ID in HubSpot CRM.", + "detailed": "This tool deletes a batch of companies in HubSpot CRM using their IDs. Deleted companies can be restored within 90 days." + }, + "return_annotation": "Confirmation of deletion request submission for companies batch.", + "arguments": [ + { + "name": "companies_batch_ids", + "alternative_names": [ + "company_ids_batch", + "batch_ids" + ], + "description": "JSON array of company IDs to delete. Each entry should include an 'id' key with the company's ID as a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of companies", + "description": "Delete a batch of companies by ID. Deleted companies can be restored within 90 days of deletion. Learn more about [restoring records](https://knowledge.hubspot.com/records/restore-deleted-records).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/companies/merge_merge", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "merge_company_records", + "description": { + "tagline": "Merge two company records in HubSpot CRM.", + "detailed": "Use this tool to merge two company records into a single record in HubSpot CRM, ensuring data consistency." + }, + "return_annotation": "Result of merging two company records.", + "arguments": [ + { + "name": "company_id_to_merge", + "alternative_names": [ + "merge_company_id", + "secondary_company_id" + ], + "description": "The ID of the company to merge into the primary company.", + "endpoint_argument_name": "objectIdToMerge" + }, + { + "name": "primary_company_id", + "alternative_names": [ + "main_company_id", + "target_company_id" + ], + "description": "The ID of the primary company into which the other company will be merged.", + "endpoint_argument_name": "primaryObjectId" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/companies/merge", + "tags": [ + "Basic" + ], + "summary": "Merge two companies", + "description": "Merge two company records. Learn more about [merging records](https://knowledge.hubspot.com/records/merge-records).", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectIdToMerge", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the company to merge into the primary." + }, + "description": "The ID of the company to merge into the primary.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The ID of the company to merge into the primary." + }, + "schema_required": true + }, + { + "name": "primaryObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the primary company, which the other will merge into." + }, + "description": "The ID of the primary company, which the other will merge into.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The ID of the primary company, which the other will merge into." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\",\n \"description\": \"The ID of the company to merge into the primary.\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the primary company, which the other will merge into.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm/v3/objects/contacts/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_read_contacts", + "description": { + "tagline": "Retrieve multiple contacts using internal IDs or unique properties.", + "detailed": "Use this tool to read a batch of contacts from HubSpot CRM by providing their internal IDs or unique property values. Ideal for situations where multiple contact details are needed simultaneously." + }, + "return_annotation": "Batch of contact details from HubSpot CRM.", + "arguments": [ + { + "name": "contacts_request_body", + "alternative_names": [ + "contacts_payload", + "contacts_input_data" + ], + "description": "JSON object containing contact read parameters: properties, propertiesWithHistory, idProperty, and inputs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "fetch_archived_contacts", + "include_archived_contacts" + ], + "description": "Set to True to return only archived contacts. False excludes them.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of contacts by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/contacts/{contactId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_contact_details", + "description": { + "tagline": "Retrieve detailed information about a specific contact.", + "detailed": "This tool fetches detailed information about a contact from HubSpot CRM, identified by `contactId`. It provides an option to specify which properties to return using query parameters. Use this tool when you need to access in-depth details about a contact, such as their internal object ID or any unique property value." + }, + "return_annotation": "Details of a contact from HubSpot CRM.", + "arguments": [ + { + "name": "contact_identifier", + "alternative_names": [ + "contact_id_value", + "unique_contact_key" + ], + "description": "The ID or unique property value used to identify the contact in HubSpot CRM.", + "endpoint_argument_name": "contactId" + }, + { + "name": "return_properties", + "alternative_names": [ + "properties_to_return", + "requested_properties" + ], + "description": "List of properties to include in the response for the contact. If absent on the object, they will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_past_values", + "historical_properties" + ], + "description": "A list of properties to return with their history of previous values. Ignored if properties are not present.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "linked_object_types", + "related_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. Ignored if associations do not exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "distinct_property_identifier" + ], + "description": "The property name with unique values for the contact type, used to identify the object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "only_return_archived", + "show_only_archived" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/contacts/{contactId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "description": "The name of a property whose values are unique for this object type", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "contactId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/contacts/{contactId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_contact", + "description": { + "tagline": "Delete a contact and move it to the recycling bin.", + "detailed": "Use this tool to delete a contact in HubSpot CRM, identified by `contactId`, moving it to the recycling bin." + }, + "return_annotation": "Confirmation of contact deletion.", + "arguments": [ + { + "name": "contact_id", + "alternative_names": [ + "contact_identifier", + "contact_key" + ], + "description": "The unique identifier of the contact to be deleted and moved to the recycling bin.", + "endpoint_argument_name": "contactId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/contacts/{contactId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{contactId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "contactId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/contacts/{contactId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_contact_information", + "description": { + "tagline": "Update specific fields of a contact in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update of a contact's information in HubSpot CRM. Identify the contact by `{contactId}` and specify fields to update. Properties not intended for update are ignored. Pass an empty string to clear values." + }, + "return_annotation": "Confirmation of contact update in HubSpot CRM.", + "arguments": [ + { + "name": "contact_id", + "alternative_names": [ + "contact_identifier", + "contact_unique_id" + ], + "description": "The unique ID or property value used to identify the contact for the update.", + "endpoint_argument_name": "contactId" + }, + { + "name": "contact_properties_update", + "alternative_names": [ + "properties_update_data", + "contact_fields_update" + ], + "description": "JSON object containing key-value pairs of contact properties to update. Use empty strings to clear values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_with_unique_values" + ], + "description": "Specify the property name with unique values for identifying the contact, such as email or phone number.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/contacts/{contactId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "description": "The name of a property whose values are unique for this object type", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "contactId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"example\": {\n \"property_date\": \"1572480000000\",\n \"property_radio\": \"option_1\",\n \"property_number\": \"17\",\n \"property_string\": \"value\",\n \"property_checkbox\": \"false\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\"\n }\n }\n },\n \"example\": {\n \"properties\": {\n \"email\": \"bcooper@biglytics.net\",\n \"phone\": \"(877) 929-0687\",\n \"company\": \"Biglytics\",\n \"website\": \"biglytics.net\",\n \"lastname\": \"Cooper\",\n \"firstname\": \"Bryan\"\n },\n \"associations\": []\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts/merge", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "merge_contacts", + "description": { + "tagline": "Merges two contacts into one in HubSpot CRM.", + "detailed": "Use this tool to merge two existing contacts within HubSpot CRM. It consolidates contact information, ensuring that no duplicate entries exist for the same individual." + }, + "return_annotation": "Confirmation of contact merge operation.", + "arguments": [ + { + "name": "contact_id_to_merge", + "alternative_names": [ + "secondary_contact_id", + "merge_contact_id" + ], + "description": "The ID of the contact object that will be merged into the primary contact.", + "endpoint_argument_name": "objectIdToMerge" + }, + { + "name": "primary_contact_id", + "alternative_names": [ + "main_contact_id", + "leading_contact_id" + ], + "description": "The unique identifier of the primary contact that will remain after merging. This contact's information will be retained.", + "endpoint_argument_name": "primaryObjectId" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/merge", + "tags": [ + "Public_Object" + ], + "summary": "Merge two contacts with same type", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectIdToMerge", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "primaryObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm/v3/objects/contacts/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_contacts_batch", + "description": { + "tagline": "Archive a batch of contacts by ID in HubSpot CRM.", + "detailed": "Use this tool to archive multiple contacts simultaneously in HubSpot CRM by providing their IDs. This can be useful for managing or cleaning up contact lists efficiently." + }, + "return_annotation": "Status of the batch archive operation.", + "arguments": [ + { + "name": "contact_ids_to_archive", + "alternative_names": [ + "ids_of_contacts_to_archive", + "contacts_batch_ids" + ], + "description": "A list of contact IDs to archive in HubSpot CRM. Each ID should be a string representing a unique contact.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of contacts by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_contacts", + "description": { + "tagline": "Create a batch of contacts in HubSpot CRM.", + "detailed": "Use this tool to create multiple contacts in HubSpot CRM at once. Ideal for bulk uploading contact information." + }, + "return_annotation": "Batch creation confirmation for contacts.", + "arguments": [ + { + "name": "contacts_data", + "alternative_names": [ + "contact_records", + "bulk_contact_entries" + ], + "description": "JSON array containing details for each contact to be created, with key-value pairs for properties and optional associations.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of contacts", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_contacts", + "description": { + "tagline": "Update a batch of contacts in HubSpot CRM.", + "detailed": "Use this tool to update multiple contacts simultaneously in HubSpot CRM. It is helpful when you need to make changes to several contact records at once." + }, + "return_annotation": "Confirms the batch update status for contacts.", + "arguments": [ + { + "name": "contacts_batch_update_data", + "alternative_names": [ + "batch_contacts_data", + "update_contacts_payload" + ], + "description": "JSON array of contact objects with unique identifiers and properties to update in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of contacts", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts/gdpr-delete", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "gdpr_delete_contact", + "description": { + "tagline": "Permanently delete a contact for GDPR compliance.", + "detailed": "Use this tool to permanently delete a contact and all associated content to comply with GDPR. You can identify the contact by email address using the 'idProperty'. If the email isn't found, it will be added to a blocklist to avoid future use." + }, + "return_annotation": "Confirmation of contact deletion or blocklisting.", + "arguments": [ + { + "name": "contact_identifier", + "alternative_names": [ + "contact_id", + "identifier" + ], + "description": "The unique ID or email used to identify the contact for deletion. Use 'email' in conjunction with 'id_property' if identifying by email.", + "endpoint_argument_name": "objectId" + }, + { + "name": "contact_identifier_property", + "alternative_names": [ + "contact_id_property", + "identifier_property" + ], + "description": "Specify 'email' to identify the contact by email address. If not using email, specify another unique identifier property.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/gdpr-delete", + "tags": [ + "GDPR" + ], + "summary": "GDPR DELETE", + "description": "Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectId\": {\n \"type\": \"string\"\n },\n \"idProperty\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/crm/v3/objects/contacts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_contacts", + "description": { + "tagline": "Retrieve a page of contacts from HubSpot CRM.", + "detailed": "This tool retrieves a page of contacts from the HubSpot CRM. You can specify which properties you want to be returned by controlling the `properties` query parameter." + }, + "return_annotation": "A page of contacts with specified properties.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_per_page", + "contacts_per_page" + ], + "description": "The maximum number of contact results to return per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "cursor_token", + "next_page_token" + ], + "description": "The token indicating the last read resource, used for pagination to retrieve more results.", + "endpoint_argument_name": "after" + }, + { + "name": "contact_properties_to_retrieve", + "alternative_names": [ + "contact_fields", + "contact_attributes" + ], + "description": "A list of properties to include in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historic_properties", + "properties_with_past_values" + ], + "description": "Specify properties to return with their history of previous values, reducing the max number of objects per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_ids", + "alternative_names": [ + "fetch_associated_objects", + "get_associations" + ], + "description": "A list of object types to retrieve associated IDs for. If associations do not exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "archived_only", + "include_archived" + ], + "description": "Whether to return only results that have been archived. Use 'true' for archived only.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/contacts", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of contacts. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_contact", + "description": { + "tagline": "Create a contact in HubSpot CRM and retrieve its details.", + "detailed": "Use this tool to add a new contact to HubSpot CRM by specifying the desired properties. It returns a copy of the contact, including its unique ID." + }, + "return_annotation": "The created contact details including ID.", + "arguments": [ + { + "name": "contact_properties", + "alternative_names": [ + "contact_details", + "contact_info" + ], + "description": "A JSON object containing properties for the new contact, including associations and other relevant data.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a contact with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contacts is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"example\": {\n \"properties\": {\n \"email\": \"bcooper@biglytics.net\",\n \"phone\": \"(877) 929-0687\",\n \"company\": \"Biglytics\",\n \"website\": \"biglytics.net\",\n \"lastname\": \"Cooper\",\n \"firstname\": \"Bryan\"\n },\n \"associations\": []\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_contacts", + "description": { + "tagline": "Search contacts in HubSpot CRM.", + "detailed": "Use this tool to search for contacts within the HubSpot CRM. It is useful for retrieving contact information based on search criteria." + }, + "return_annotation": "Returns contact search results from HubSpot CRM.", + "arguments": [ + { + "name": "contact_search_criteria", + "alternative_names": [ + "find_contacts_parameters", + "contacts_query_parameters" + ], + "description": "Search criteria for finding contacts, including filters, properties, and sorting options.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "query": { + "type": "string" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "after": { + "type": "string" + }, + "sorts": { + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + }, + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"after\",\n \"filterGroups\",\n \"limit\",\n \"properties\",\n \"sorts\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contacts/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_contact_batch", + "description": { + "tagline": "Upsert a batch of contacts in HubSpot CRM.", + "detailed": "This tool is used to upsert a batch of contacts in HubSpot CRM. It allows you to define property values for each contact record, making it ideal for updating or creating multiple contacts at once." + }, + "return_annotation": "Confirmation of upserted contacts and details.", + "arguments": [ + { + "name": "contact_batch_data", + "alternative_names": [ + "contact_upsert_payload", + "batch_contact_info" + ], + "description": "JSON object containing an array of contact data for upsert. Each contact should have `idProperty`, `objectWriteTraceId`, `id`, and `properties` defined.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/contacts/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of contacts", + "description": "Upsert a batch of contacts. The `inputs` array can contain a `properties` object to define property values for each record.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/contracts/{contractId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "GET", + "path": "/crm/v3/objects/contracts/{contractId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{contractId}`. `{contractId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "contractId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/contracts/{contractId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "DELETE", + "path": "/crm/v3/objects/contracts/{contractId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{contractId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "contractId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/contracts/{contractId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "PATCH", + "path": "/crm/v3/objects/contracts/{contractId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{contractId}`or optionally a unique property value as specified by the `idProperty` query param. `{contractId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "contractId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of contracts by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of contracts by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of contracts", + "description": "", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of contracts by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/contracts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "GET", + "path": "/crm/v3/objects/contracts", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of contracts. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of contracts that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of contracts that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a contract with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contracts is provided.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/contracts/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['oauth2_legacy'], ['private_apps_legacy']]", + "wrapper_tool": null, + "method": "POST", + "path": "/crm/v3/objects/contracts/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of contracts by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2_legacy", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-410", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_courses", + "description": { + "tagline": "Fetch a page of courses from HubSpot CRM.", + "detailed": "Use this tool to read and retrieve information about a page of courses from HubSpot CRM. The response can be tailored using the `properties` query parameter to control what specific data is returned." + }, + "return_annotation": "Returns details of a page of courses.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_page_limit", + "page_size_limit" + ], + "description": "Specify the maximum number of courses to display in a single page of results.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "cursor_token", + "page_token" + ], + "description": "The paging cursor token of the last successfully read resource, used to fetch the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "return_properties", + "properties_list" + ], + "description": "Comma separated list of properties to include in the response. Ignored if not present on requested objects.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_past", + "property_history_inclusion" + ], + "description": "List of properties to return with their history. This can reduce the number of courses per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_objects", + "linked_objects" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for; ignored if non-existent.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "include_archived_only", + "show_archived_only" + ], + "description": "Set to true to return only archived results. False includes non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-410", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of courses. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of courses that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of courses that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_course", + "description": { + "tagline": "Create a course in HubSpot CRM and return its details.", + "detailed": "Use this tool to create a new course in HubSpot CRM with specified properties. It returns the course details, including the generated ID, upon successful creation." + }, + "return_annotation": "Details of the created course, including its ID.", + "arguments": [ + { + "name": "course_properties", + "alternative_names": [ + "course_data", + "course_details" + ], + "description": "JSON object containing key-value pairs for setting properties and associations for the new course. Includes fields like `properties` for course-specific attributes and `associations` for related entities.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a course with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard courses is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_courses_batch", + "description": { + "tagline": "Archive a batch of courses by ID.", + "detailed": "Use this tool to archive multiple courses at once by providing their IDs. This simplifies the management of courses by automating the archiving process." + }, + "return_annotation": "Confirmation of courses archived successfully.", + "arguments": [ + { + "name": "courses_ids_to_archive", + "alternative_names": [ + "course_ids_list", + "archive_courses_ids" + ], + "description": "A list of course IDs to be archived. Each ID should be a string representing a course to be archived.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of courses by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-410/{courseId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_course_details", + "description": { + "tagline": "Fetch details of a course using the course ID.", + "detailed": "Use this tool to retrieve detailed information about a course identified by its ID. The tool provides access to all course-related data, leveraging the course ID or any unique property value specified." + }, + "return_annotation": "Course details for a given course ID.", + "arguments": [ + { + "name": "course_id", + "alternative_names": [ + "course_identifier", + "course_unique_id" + ], + "description": "The unique identifier for the course. Use this to specify which course details to retrieve.", + "endpoint_argument_name": "courseId" + }, + { + "name": "include_properties", + "alternative_names": [ + "return_properties", + "fetch_properties" + ], + "description": "A list of property names to include in the response. Any missing properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "include_properties_with_history", + "alternative_names": [ + "properties_with_past_values", + "historical_properties" + ], + "description": "Specify properties to retrieve with their history of changes. Input as a list, each entry being a property name.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "alternative_names": [ + "associated_object_types_list", + "get_associated_objects" + ], + "description": "A list of object types for retrieving associated IDs. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property_name", + "unique_identifier_property" + ], + "description": "Specify the name of a unique property for the course object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "fetch_archived_only", + "retrieve_only_archived" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-410/{courseId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{courseId}`. `{courseId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "courseId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/0-410/{courseId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_course", + "description": { + "tagline": "Delete a course by moving it to the recycling bin.", + "detailed": "This tool deletes a specific course in the CRM by moving it to the recycling bin, identified by the provided `courseId`. Use this when you need to remove a course from the CRM records." + }, + "return_annotation": "Confirmation of course deletion or error message.", + "arguments": [ + { + "name": "course_id", + "alternative_names": [ + "course_identifier", + "course_reference" + ], + "description": "The unique identifier for the course to be deleted. This identifier is used to locate the specific course in the CRM system.", + "endpoint_argument_name": "courseId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/0-410/{courseId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{courseId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "courseId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/0-410/{courseId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_course", + "description": { + "tagline": "Update specific properties of a HubSpot course object.", + "detailed": "Use this tool to perform a partial update on a course object in HubSpot CRM. Update is identified by either the `{courseId}` or a unique property via `idProperty`. Only properties provided will be changed, while read-only or non-existent properties will cause an error. Properties can be cleared by providing an empty string." + }, + "return_annotation": "Confirmation of course object update.", + "arguments": [ + { + "name": "course_identifier", + "alternative_names": [ + "course_id_value", + "object_identifier" + ], + "description": "The unique identifier for the HubSpot course. It can be the internal course ID or a unique property value specified by `idProperty`.", + "endpoint_argument_name": "courseId" + }, + { + "name": "course_update_properties", + "alternative_names": [ + "course_properties_update", + "update_properties_for_course" + ], + "description": "A JSON object containing key-value pairs of course properties to update. Only include properties that need to be changed. Keys should be valid property names in HubSpot CRM, and values should be the new values to set. Clear a property by setting its value to an empty string.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_field_name", + "unique_identifier_property" + ], + "description": "The property name with unique values for identifying the object to update. Use it if not using `courseId`.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/0-410/{courseId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{courseId}`or optionally a unique property value as specified by the `idProperty` query param. `{courseId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "courseId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_courses", + "description": { + "tagline": "Create a batch of courses in CRM.", + "detailed": "Use this tool to add multiple courses at once to HubSpot CRM. Ideal for instances where you need to create several course entries simultaneously." + }, + "return_annotation": "Confirmation of batch course creation.", + "arguments": [ + { + "name": "courses_batch_data", + "alternative_names": [ + "courses_data_payload", + "batch_courses_input" + ], + "description": "A JSON array with each item detailing a course to create, including associations, objectWriteTraceId, and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of courses", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_upsert_records", + "description": { + "tagline": "Create or update HubSpot CRM records via unique identifier.", + "detailed": "This tool creates or updates HubSpot CRM records based on a unique property identifier specified by the `idProperty` parameter. It is useful for ensuring records are maintained accurately in the CRM." + }, + "return_annotation": "Confirmation of records being created or updated.", + "arguments": [ + { + "name": "crm_records_payload", + "alternative_names": [ + "crm_entries_payload", + "hubspot_data_payload" + ], + "description": "A JSON object containing an array of records, each with a unique `idProperty` and related properties for upsert operation.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of courses by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "hubspot_crm_search_objects", + "description": { + "tagline": "Search and retrieve objects from HubSpot CRM.", + "detailed": "Use this tool to perform a search for specific objects within the HubSpot CRM. It should be called when you need to find and retrieve detailed information about CRM objects based on search criteria." + }, + "return_annotation": "Search results from HubSpot CRM.", + "arguments": [ + { + "name": "search_request", + "alternative_names": [ + "search_parameters", + "query_body" + ], + "description": "JSON containing search details. Includes query, limit, sorts, properties, and filterGroups for HubSpot CRM object search.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_courses_batch", + "description": { + "tagline": "Update multiple courses in a batch by ID or unique properties.", + "detailed": "Use this tool to update a batch of courses in the CRM system by specifying their internal IDs or unique property values. This is useful for making bulk updates efficiently." + }, + "return_annotation": "Confirmation of batch update for courses.", + "arguments": [ + { + "name": "courses_batch_update_payload", + "alternative_names": [ + "bulk_courses_update_data", + "courses_update_entries" + ], + "description": "JSON object specifying the batch of courses to update, including IDs and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of courses by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-410/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_records", + "description": { + "tagline": "Retrieve HubSpot CRM records by ID or unique property.", + "detailed": "This tool retrieves HubSpot CRM records using either the record ID or a custom unique value property specified by the `idProperty`. It's useful for accessing multiple records within the CRM at once." + }, + "return_annotation": "Batch of HubSpot records retrieved by ID or unique property.", + "arguments": [ + { + "name": "hubspot_record_request", + "alternative_names": [ + "hubspot_batch_request", + "hubspot_records_input" + ], + "description": "JSON object containing parameters to retrieve HubSpot CRM records. Includes `idProperty` for unique property lookup, `inputs` for record IDs, optional `properties` for field selection, and `propertiesWithHistory` for field histories.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_records", + "alternative_names": [ + "include_archived_records", + "fetch_only_archived_records" + ], + "description": "Set to true to return only archived records; false to exclude archived records in HubSpot CRM.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-410/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of courses by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.courses.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/owners/", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_owners_list", + "description": { + "tagline": "Retrieve a list of owners from the HubSpot CRM account.", + "detailed": "Use this tool to obtain a paginated list of all owners available in a HubSpot CRM account. This can be useful for managing owner-related data or assignments." + }, + "return_annotation": "A list of owners from the account.", + "arguments": [ + { + "name": "filter_by_email", + "alternative_names": [ + "owner_email_filter", + "email_query" + ], + "description": "Specify an email address to filter the list of owners returned. Only the owner with this exact email will be retrieved.", + "endpoint_argument_name": "email" + }, + { + "name": "pagination_cursor_after", + "alternative_names": [ + "next_page_after", + "page_token_after" + ], + "description": "A cursor to get the next page of results, indicating the last result shown from the previous request.", + "endpoint_argument_name": "after" + }, + { + "name": "owners_list_limit", + "alternative_names": [ + "owners_fetch_limit", + "max_owners_per_page" + ], + "description": "The maximum number of owners to return per page. Provide an integer value.", + "endpoint_argument_name": "limit" + }, + { + "name": "include_archived", + "alternative_names": [ + "show_archived", + "retrieve_archived_owners" + ], + "description": "Set to true to include archived owners in the retrieved list.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/owners/", + "tags": [ + "Owners" + ], + "summary": "Retrieve a paginated list of owners available in the account.", + "description": "Retrieve a paginated list of owners available in the account.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.owners.read" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "email", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": 100, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/owners/{ownerId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_owner_details", + "description": { + "tagline": "Retrieve details of a specific CRM owner by ID.", + "detailed": "This tool retrieves details of a specific owner in the HubSpot CRM using either their 'id' or 'userId'. Use it when you need comprehensive information about a particular CRM owner." + }, + "return_annotation": "Details of a specific CRM owner.", + "arguments": [ + { + "name": "owner_id", + "alternative_names": [ + "owner_identifier", + "owner_user_id" + ], + "description": "The unique ID of the CRM owner. Use this to retrieve the owner's details.", + "endpoint_argument_name": "ownerId" + }, + { + "name": "owner_id_type", + "alternative_names": [ + "id_type", + "owner_identifier_type" + ], + "description": "Specify whether the 'ownerId' refers to an 'id' or 'userId'.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "include_archived", + "alternative_names": [ + "show_archived", + "retrieve_archived" + ], + "description": "Set to true to include archived owners in the retrieved details.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/owners/{ownerId}", + "tags": [ + "Owners" + ], + "summary": "Retrieve a paginated list of owners available in the account.", + "description": "Retrieve details of a specific owner using either their 'id' or 'userId'.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.owners.read" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "id", + "userId" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": "id", + "location": "query", + "content_type": null, + "json_schema": { + "type": "string", + "enum": [ + "id", + "userId" + ] + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "ownerId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_retrieve_hubspot_records", + "description": { + "tagline": "Retrieve HubSpot CRM records using batch read.", + "detailed": "This tool retrieves records from HubSpot CRM by record ID or custom unique property in a batch. Use it when you need to access multiple entities by their specific identifiers." + }, + "return_annotation": "Batch of HubSpot CRM records based on the specified IDs.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "hubspot_object_type", + "record_object_type" + ], + "description": "Specify the type of CRM object to retrieve, such as 'contact', 'deal', or 'company'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "hubspot_record_batch_request", + "alternative_names": [ + "record_batch_payload", + "crm_batch_request_body" + ], + "description": "A JSON object containing 'idProperty' for custom property retrieval, 'inputs' with record IDs or custom properties, 'properties' for new object properties, and 'propertiesWithHistory' for property histories. Use 'idProperty' only for custom unique value property retrieval, otherwise omit it.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_results", + "alternative_names": [ + "include_archived_only", + "get_archived_only" + ], + "description": "Set to true to return only archived results. Use false to include active records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of objects by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/{objectType}/{objectId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_hubspot_object_by_id", + "description": { + "tagline": "Retrieve a HubSpot CRM object using its unique ID.", + "detailed": "Use this tool to fetch the details of a HubSpot CRM object by its unique ID. Specify the object type and optional parameters to control the returned data." + }, + "return_annotation": "Details of the specified HubSpot CRM object.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "type_of_object", + "crm_object_type" + ], + "description": "The type of the HubSpot CRM object you want to retrieve. Examples include 'contact', 'company', and 'deal'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_identifier", + "alternative_names": [ + "hubspot_object_id", + "crm_unique_id" + ], + "description": "The unique identifier of the HubSpot CRM object to retrieve. This can be the internal object ID or another unique property value if specified by the `id_property` parameter.", + "endpoint_argument_name": "objectId" + }, + { + "name": "return_properties", + "alternative_names": [ + "properties_to_return", + "object_properties" + ], + "description": "List of properties to return for the object. Ignored if not present on the object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_and_history" + ], + "description": "A list of properties to return along with their historical values. Ignored if properties are not present.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Specify object types to retrieve associated IDs for, separated by commas. Non-existing associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "identifier_property_name" + ], + "description": "Specify the property name that uniquely identifies the object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "fetch_only_archived", + "include_only_archived" + ], + "description": "Set to true to return only archived results. Set to false to include all results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/{objectType}/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{objectId}`. `{objectId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/{objectType}/{objectId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "move_object_to_recycle_bin", + "description": { + "tagline": "Move a CRM object to the recycling bin.", + "detailed": "Use this tool to move a specified CRM object to the recycling bin using its object type and ID. This is useful for archiving or removing unnecessary data in HubSpot CRM." + }, + "return_annotation": "Confirmation of object being moved to recycling bin.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "crm_object_type", + "hubspot_object_category" + ], + "description": "Type of the CRM object to be moved, such as 'contacts', 'companies', etc.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_id", + "alternative_names": [ + "object_identifier", + "crm_object_id" + ], + "description": "The unique identifier for the CRM object to be moved to the recycling bin. This ID specifies which object within the CRM will be affected.", + "endpoint_argument_name": "objectId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/{objectType}/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{objectId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/{objectType}/{objectId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "modify_hubspot_object", + "description": { + "tagline": "Update specific properties of a HubSpot CRM object.", + "detailed": "Use this tool to perform partial updates on HubSpot CRM objects by specifying the object type and ID. You can update properties by providing new values, but ensure they aren't read-only or non-existent. Clear properties by passing an empty string." + }, + "return_annotation": "Details of the updated HubSpot CRM object.", + "arguments": [ + { + "name": "hubspot_object_type", + "alternative_names": [ + "crm_object_type", + "record_type" + ], + "description": "Specify the type of HubSpot CRM object (e.g., 'contacts', 'companies', 'deals').", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_identifier", + "alternative_names": [ + "object_id", + "record_id" + ], + "description": "The internal ID of the HubSpot object to update. Use a string format.", + "endpoint_argument_name": "objectId" + }, + { + "name": "object_properties", + "alternative_names": [ + "record_updates", + "property_changes" + ], + "description": "JSON object with key-value pairs for properties to update. Non-existent or read-only properties will cause an error.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_key_name" + ], + "description": "The name of a unique property for identifying the object. Use when the default object ID isn't used.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/{objectType}/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{objectId}`or optionally a unique property value as specified by the `idProperty` query param. `{objectId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}/merge_merge", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "merge_hubspot_objects", + "description": { + "tagline": "Merge two HubSpot CRM objects of the same type.", + "detailed": "Use this tool to merge two objects within HubSpot CRM that have the same object type, such as contacts or companies. It is useful for consolidating duplicate records into a single, unified entry." + }, + "return_annotation": "Confirmation of merged CRM objects.", + "arguments": [ + { + "name": "object_type_to_merge", + "alternative_names": [ + "entity_type_to_combine", + "record_type_to_unify" + ], + "description": "The type of HubSpot CRM object to merge, such as 'contacts' or 'companies'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_id_to_merge", + "alternative_names": [ + "secondary_object_id", + "merge_target_object_id" + ], + "description": "The ID of the object to be merged into the primary object. It must be of the same type as the primary object.", + "endpoint_argument_name": "objectIdToMerge" + }, + { + "name": "primary_object_id", + "alternative_names": [ + "main_object_id", + "lead_object_id" + ], + "description": "The ID of the object that will remain after the merge. Provide as a string.", + "endpoint_argument_name": "primaryObjectId" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/merge", + "tags": [ + "Basic" + ], + "summary": "Merge two objects with same type", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectIdToMerge", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "primaryObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm/v3/objects/{objectType}/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_hubspot_objects_batch", + "description": { + "tagline": "Archive a batch of HubSpot CRM objects by ID.", + "detailed": "Use this tool to archive multiple objects in HubSpot CRM by specifying their IDs and object type, such as 'contacts' or 'companies'." + }, + "return_annotation": "Confirmation of archived HubSpot objects.", + "arguments": [ + { + "name": "hubspot_object_type", + "alternative_names": [ + "object_type_name", + "type_of_object" + ], + "description": "Specifies the type of HubSpot CRM objects to archive (e.g., 'contacts', 'companies').", + "endpoint_argument_name": "objectType" + }, + { + "name": "batch_object_ids", + "alternative_names": [ + "object_id_list", + "objects_to_archive" + ], + "description": "A JSON array of objects with 'id' fields to specify which HubSpot CRM objects to archive. Each entry should contain an 'id' key with the object ID as a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of objects by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_objects_batch", + "description": { + "tagline": "Update multiple HubSpot CRM objects in a batch.", + "detailed": "Use this tool to update a batch of objects in HubSpot CRM using internal IDs or unique property values. Useful for synchronizing or modifying multiple CRM records at once." + }, + "return_annotation": "Confirmation of the batch update operation.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "hubspot_object_type", + "crm_object_type" + ], + "description": "The type of HubSpot CRM object to update, such as 'contacts', 'companies', 'deals', or 'tickets'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "batch_update_data", + "alternative_names": [ + "update_data_payload", + "objects_update_details" + ], + "description": "JSON object containing an array of objects with details such as idProperty, objectWriteTraceId, id, and properties for batch updating.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of objects by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_objects_batch", + "description": { + "tagline": "Create a batch of objects in HubSpot CRM.", + "detailed": "Use this tool to create multiple objects at once in HubSpot CRM. Suitable for handling bulk operations where several objects need to be created simultaneously." + }, + "return_annotation": "Confirmation of object batch creation in HubSpot CRM.", + "arguments": [ + { + "name": "hubspot_object_type", + "alternative_names": [ + "crm_entity_type", + "object_category" + ], + "description": "Specifies the type of object to create in HubSpot, such as 'contacts', 'deals', or 'companies'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_batch_creation_data", + "alternative_names": [ + "batch_objects_data", + "hubspot_objects_batch_info" + ], + "description": "A JSON object containing details of objects to create, including 'properties', 'associations', and 'objectWriteTraceId'. Each object can include associations with categories and ID types, and should specify trace IDs for tracking.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of objects", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_or_create_hubspot_records", + "description": { + "tagline": "Create or update HubSpot CRM records in bulk.", + "detailed": "This tool is used to batch upsert records in HubSpot CRM based on a unique identifier. It's ideal for managing large datasets where records may need to be created or updated if they already exist." + }, + "return_annotation": "Confirmation of records creation or update.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "hubspot_object_type", + "record_object_type" + ], + "description": "Specifies the type of CRM object to act upon, such as 'contacts', 'companies', etc.", + "endpoint_argument_name": "objectType" + }, + { + "name": "hubspot_records_data", + "alternative_names": [ + "records_payload", + "objects_data" + ], + "description": "A JSON array of records with unique identifiers and properties for upsert. Each entry includes 'idProperty' (unique property name), 'objectWriteTraceId' (trace ID), 'id' (object ID), and 'properties' (key-value pairs for object properties).", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of objects by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/{objectType}_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_objects_page", + "description": { + "tagline": "Retrieve a page of HubSpot CRM objects.", + "detailed": "Use this tool to read a page of objects from HubSpot CRM. Specify the desired properties through the `properties` query parameter to control the returned data." + }, + "return_annotation": "A page of CRM objects from HubSpot.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "crm_object_type", + "object_category" + ], + "description": "Specify the type of CRM object to retrieve, such as 'contacts', 'companies', or 'deals'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit", + "per_page_maximum" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "cursor_after" + ], + "description": "The token used to retrieve the next page of results. Obtained from the `paging.next.after` property of a previous response.", + "endpoint_argument_name": "after" + }, + { + "name": "requested_properties", + "alternative_names": [ + "object_properties_list", + "response_properties" + ], + "description": "List of properties to include in the response. Ignored if not present on the object(s).", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List the properties to return with their historical values in the CRM objects.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "associated_ids_list", + "retrieve_association_ids" + ], + "description": "Comma-separated object types to retrieve associated IDs for. Ignored if associations do not exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_results_only", + "alternative_names": [ + "include_archived_only", + "fetch_archived_only" + ], + "description": "Return only the archived results if set to true.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/{objectType}", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of objects. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_crm_object", + "description": { + "tagline": "Create a CRM object and retrieve its details.", + "detailed": "This tool creates a new CRM object in HubSpot with specified properties and returns the object, including its ID. Use it to add contacts, companies, deals, etc., to your HubSpot CRM." + }, + "return_annotation": "A copy of the created CRM object, including the ID.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "hubspot_crm_object_type", + "crm_record_type" + ], + "description": "Specify the type of CRM object to create, such as 'contact', 'company', or 'deal'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "object_properties", + "alternative_names": [ + "crm_object_data", + "new_object_details" + ], + "description": "A JSON object containing key-value pairs that define the properties for the new CRM object, including any associations. Specify the properties and association details as needed.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a CRM object with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard objects is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/{objectType}/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_objects", + "description": { + "tagline": "Perform a search on HubSpot CRM objects by type.", + "detailed": "Use this tool to search for objects in HubSpot CRM by specifying the object type. It helps in locating contacts, companies, deals, and other entities based on defined criteria." + }, + "return_annotation": "Search results for specified object type in HubSpot CRM.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "hubspot_object_type", + "crm_entity_type" + ], + "description": "Specify the type of object to search for in HubSpot, such as contacts, companies, or deals.", + "endpoint_argument_name": "objectType" + }, + { + "name": "search_criteria", + "alternative_names": [ + "search_parameters", + "query_details" + ], + "description": "JSON object specifying the search query, filters, limits, sorting, and properties to include in the results for a HubSpot CRM search.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/{objectType}/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_multiple_deals", + "description": { + "tagline": "Update multiple deals in the CRM system.", + "detailed": "This tool updates multiple deals using their internal IDs or unique property values in the CRM. It should be called when you need to modify several deals at once within the HubSpot CRM." + }, + "return_annotation": "Confirmation of updated deals.", + "arguments": [ + { + "name": "deals_data", + "alternative_names": [ + "deals_update_payload", + "deals_properties_update" + ], + "description": "A JSON array of objects with deal details, including 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update multiple deals.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of deals by internal ID, or unique property values", + "description": "Update multiple deals using their internal IDs or unique property values.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_deals", + "description": { + "tagline": "Search for deals using specified criteria and filters.", + "detailed": "This tool searches for deals in the HubSpot CRM using the provided criteria and filters. It should be called when there's a need to find deals that match specific conditions." + }, + "return_annotation": "Results of the deal search based on specified criteria.", + "arguments": [ + { + "name": "deal_search_criteria", + "alternative_names": [ + "deal_search_parameters", + "deal_filter_criteria" + ], + "description": "JSON containing search query, limits, filters, and sorting options.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/search", + "tags": [ + "Search" + ], + "summary": "Search for deals using various filters and criteria to retrieve specific records.", + "description": "Search for deals using specified criteria and filters.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_or_update_hubspot_records", + "description": { + "tagline": "Create or update HubSpot CRM records using unique properties.", + "detailed": "This tool is used to create or update HubSpot CRM records by leveraging unique property values for identification. It ensures that records are upserted based on the provided unique identifier." + }, + "return_annotation": "Confirmation of record creation or update in HubSpot CRM.", + "arguments": [ + { + "name": "hubspot_records_data", + "alternative_names": [ + "hubspot_records_payload", + "records_upsert_data" + ], + "description": "JSON array of objects containing 'idProperty', 'objectWriteTraceId', 'id', and 'properties'. Each object represents a record to create or update in HubSpot CRM. 'idProperty' is the unique identifier.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of deals by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_multiple_deals", + "description": { + "tagline": "Archive multiple deals using their IDs in HubSpot CRM.", + "detailed": "This tool is used to archive multiple deals in HubSpot CRM by providing their IDs. It should be called when there is a need to batch archive deals efficiently." + }, + "return_annotation": "Confirmation of deal archival status.", + "arguments": [ + { + "name": "deal_ids", + "alternative_names": [ + "deal_identifiers", + "deal_id_list" + ], + "description": "A list of deal IDs that need to be archived. This should be an array of strings, each representing a deal ID in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of deals by ID", + "description": "Archive multiple deals using their IDs.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_crm_records", + "description": { + "tagline": "Retrieve CRM records by ID or custom unique property.", + "detailed": "This tool retrieves CRM records using either their record ID or a custom unique value property specified by the `idProperty` parameter. It is useful for accessing detailed information about specific records stored in the CRM system." + }, + "return_annotation": "Retrieved CRM records based on specified IDs or properties.", + "arguments": [ + { + "name": "record_retrieval_request_body", + "alternative_names": [ + "crm_request_body", + "record_request_payload" + ], + "description": "A JSON object containing 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties'. Used to specify how records should be retrieved based on IDs or a custom property.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "retrieve_only_archived_records", + "alternative_names": [ + "only_archived_records", + "archived_records_only" + ], + "description": "Set to true to retrieve only archived CRM records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of deals by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-3/{dealId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_deal_by_id", + "description": { + "tagline": "Retrieve HubSpot CRM deal information by Deal ID.", + "detailed": "Use this tool to fetch detailed information about a specific deal in HubSpot CRM using the deal's unique ID. The response includes properties specified by the user." + }, + "return_annotation": "Details of the specified HubSpot deal.", + "arguments": [ + { + "name": "deal_id", + "alternative_names": [ + "unique_deal_id", + "crm_deal_id" + ], + "description": "The unique identifier of the deal to retrieve from HubSpot CRM.", + "endpoint_argument_name": "dealId" + }, + { + "name": "return_properties", + "alternative_names": [ + "response_properties", + "output_properties" + ], + "description": "List of properties to be returned in the response. Ignored if not present on the object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_with_history_list", + "historical_properties" + ], + "description": "Specify properties to return with their history of values. Use a comma-separated list.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "List of object types to retrieve associated IDs for. Ignored if associations do not exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property", + "unique_identifier_property" + ], + "description": "Specify the unique property name used to identify the deal. It defaults to an internal object ID if not provided.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "show_archived", + "view_only_archived" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-3/{dealId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{dealId}`. `{dealId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "dealId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be retrieved." + }, + "description": "The unique identifier of the deal to be retrieved.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/0-3/{dealId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_deal_in_hubspot", + "description": { + "tagline": "Archives a specific deal in HubSpot CRM.", + "detailed": "Use this tool to move a deal identified by `dealId` to the recycling bin in HubSpot CRM, effectively archiving it." + }, + "return_annotation": "Confirmation of deal archiving in HubSpot CRM.", + "arguments": [ + { + "name": "deal_id", + "alternative_names": [ + "deal_identifier", + "deal_unique_id" + ], + "description": "The unique identifier of the deal to be archived in HubSpot CRM.", + "endpoint_argument_name": "dealId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/0-3/{dealId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{dealId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "dealId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be archived." + }, + "description": "The unique identifier of the deal to be archived.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/0-3/{dealId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_deal", + "description": { + "tagline": "Update a specific deal in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update on a deal in HubSpot CRM by specifying the deal's internal ID or a unique property value. Only existing properties can be updated, and read-only properties will not be accepted." + }, + "return_annotation": "Confirmation of the deal update in HubSpot CRM.", + "arguments": [ + { + "name": "deal_identifier", + "alternative_names": [ + "deal_id", + "deal_unique_id" + ], + "description": "The unique identifier of the deal to be updated in HubSpot CRM. Can be internal ID or unique property value.", + "endpoint_argument_name": "dealId" + }, + { + "name": "deal_properties_update", + "alternative_names": [ + "update_deal_properties", + "deal_attributes_update" + ], + "description": "JSON object containing key-value pairs of properties to update for the deal. Non-existent properties will cause an error.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_name_for_unique_id" + ], + "description": "The name of a unique property to identify the deal instead of `dealId`.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/0-3/{dealId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{dealId}`or optionally a unique property value as specified by the `idProperty` query param. `{dealId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "dealId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be updated." + }, + "description": "The unique identifier of the deal to be updated.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_multiple_deals", + "description": { + "tagline": "Create multiple deals in HubSpot CRM in one request.", + "detailed": "Use this tool to batch create multiple deals in HubSpot CRM efficiently. It should be called when you need to add several deals at once, reducing the number of individual requests." + }, + "return_annotation": "Confirmation of deals successfully created.", + "arguments": [ + { + "name": "deal_creation_requests", + "alternative_names": [ + "deals_to_create", + "batch_deal_data" + ], + "description": "A JSON array of deal objects, each containing properties, associations, and an optional write trace ID for creating multiple deals in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of deals", + "description": "Create multiple deals in a single request.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-3_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_deals_page", + "description": { + "tagline": "Read a page of deals from the CRM system.", + "detailed": "Use this tool to retrieve a page of deals from HubSpot CRM. You can control the information returned by specifying desired properties through query parameters." + }, + "return_annotation": "A page of CRM deals with specified properties.", + "arguments": [ + { + "name": "results_limit_per_page", + "alternative_names": [ + "max_results_per_page", + "page_results_limit" + ], + "description": "The maximum number of deals to display per page, as an integer.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "page_cursor_token", + "next_page_token" + ], + "description": "The token for the paging cursor to retrieve the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "deal_properties", + "alternative_names": [ + "properties_to_return", + "deal_fields" + ], + "description": "List the properties to include in the response as a comma-separated string. Ignored if not present.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_historical_values", + "properties_with_value_history" + ], + "description": "A list of deal properties for which historical values are returned. Usage reduces max results per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "associate_objects", + "related_object_types" + ], + "description": "List of object types to retrieve associated IDs for, separated by commas. If associations don't exist, they're ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "show_archived", + "archived_results_only" + ], + "description": "Set to true to return only archived results; false to include active results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-3", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of deals. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of deals that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of deals that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_deal", + "description": { + "tagline": "Create a new deal in HubSpot CRM.", + "detailed": "Use this tool to create a new deal in HubSpot CRM by specifying the necessary properties. It returns the created deal object along with its unique ID." + }, + "return_annotation": "The created deal object including its ID.", + "arguments": [ + { + "name": "deal_properties", + "alternative_names": [ + "deal_data", + "crm_deal_details" + ], + "description": "JSON object containing key-value pairs for setting properties for the new deal, and optionally, associations with other objects.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a deal with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard deals is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-3/merge_merge", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "merge_deals", + "description": { + "tagline": "Combine two deals into a single unified deal in HubSpot CRM.", + "detailed": "Use this tool to merge two deals of the same type into one within HubSpot CRM. It is useful when consolidating duplicate or related deals into a single entry." + }, + "return_annotation": "Details of the newly merged deal.", + "arguments": [ + { + "name": "deal_id_to_merge", + "alternative_names": [ + "merge_deal_id", + "secondary_deal_id" + ], + "description": "The ID of the deal to be merged into the primary deal.", + "endpoint_argument_name": "objectIdToMerge" + }, + { + "name": "primary_deal_id", + "alternative_names": [ + "main_deal_id", + "lead_deal_id" + ], + "description": "The ID of the primary deal that will remain after merging.", + "endpoint_argument_name": "primaryObjectId" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-3/merge", + "tags": [ + "Basic" + ], + "summary": "Merge two deals with same type", + "description": "Combine two deals of the same type into a single deal.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.deals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectIdToMerge", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "primaryObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm/v3/objects/deals/splits/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "manage_deal_splits", + "description": { + "tagline": "Create or replace deal splits for specific deals.", + "detailed": "This tool is used to create or update deal splits for the specified deal IDs. The deal split percentages must add up to 100% and can have up to 8 decimal places. It is useful for managing deal contributions among different stakeholders." + }, + "return_annotation": "Confirmation of deal splits creation or update.", + "arguments": [ + { + "name": "deal_splits_data", + "alternative_names": [ + "deal_splits_input", + "splits_data" + ], + "description": "A JSON object containing an array of deal objects, each with an ID and a splits array. Each split should include an ownerId and a percentage. Percentages within each deal must sum up to 1.0 (100%).", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/deals/splits/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or replace deal splits for deals with the provided IDs. Deal split percentages for each deal must sum up to 1.0 (100%) and may have up to 8 decimal places", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.dealsplits.read_write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "splits": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "percentage": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "ownerId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "type": "object", + "properties": { + "percentage": { + "type": "number" + }, + "ownerId": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "ownerId", + "percentage" + ] + } + }, + "id": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "id", + "splits" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"splits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"splits\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"ownerId\",\n \"percentage\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"percentage\": {\n \"type\": \"number\"\n },\n \"ownerId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n },\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/deals/splits/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_batch_deal_splits", + "description": { + "tagline": "Fetch a batch of deal split objects by deal ID.", + "detailed": "This tool reads a batch of deal split objects using their associated deal object internal IDs, allowing access to multiple deal splits in one request." + }, + "return_annotation": "Batch of deal split objects by deal ID.", + "arguments": [ + { + "name": "deal_object_internal_ids", + "alternative_names": [ + "deal_ids", + "deal_internal_ids" + ], + "description": "A JSON array of deal object internal IDs to fetch their split details. Each ID should be a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/deals/splits/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of deal split objects by their associated deal object internal ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.dealsplits.read_write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_discounts", + "description": { + "tagline": "Search for discounts in the HubSpot CRM.", + "detailed": "Use this tool to search for discount records in the HubSpot CRM. It is useful when you need to find specific discounts based on certain criteria." + }, + "return_annotation": "Information about discounts matching the search criteria.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "discount_search_parameters", + "discount_query_details" + ], + "description": "A JSON object containing search criteria such as query string, limit, paging cursor, sort order, property names, and filter groups to define the search parameters for discounts in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_discounts_batch", + "description": { + "tagline": "Update multiple discounts by ID or unique properties.", + "detailed": "Use this tool to update a batch of discounts in HubSpot CRM by specifying internal IDs or unique property values. It is suitable for scenarios where multiple discount records need to be updated simultaneously." + }, + "return_annotation": "Information about the update status of discounts.", + "arguments": [ + { + "name": "discount_update_requests", + "alternative_names": [ + "discount_update_payload", + "update_discounts_data" + ], + "description": "An array of objects, each with properties like 'id', 'idProperty', 'objectWriteTraceId', and 'properties'. These specify the discounts to update in the batch.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of discounts by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/discounts/{discountId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_discount_details", + "description": { + "tagline": "Retrieve details of a discount by its ID.", + "detailed": "Use this tool to get detailed information about a specific discount object by providing its ID. The tool allows customization of returned properties through query parameters." + }, + "return_annotation": "Details of the specified discount.", + "arguments": [ + { + "name": "discount_identifier", + "alternative_names": [ + "discount_id", + "discount_key" + ], + "description": "The unique identifier for the discount object to retrieve. This can either be the internal ID or a value of a unique property specified by `idProperty`.", + "endpoint_argument_name": "discountId" + }, + { + "name": "return_properties", + "alternative_names": [ + "properties_to_return", + "requested_properties" + ], + "description": "Comma-separated list of properties to return in response. Ignored if not present on the object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "historical_properties" + ], + "description": "List of properties to retrieve along with their value history. Ignored if properties are missing.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "unique_property_key" + ], + "description": "The property name for uniquely identifying the discount object. Use when the property value is not the default ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "archived_results_only", + "alternative_names": [ + "return_only_archived", + "get_only_archived" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/discounts/{discountId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{discountId}`. `{discountId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "discountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/discounts/{discountId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_discount", + "description": { + "tagline": "Delete a discount and move it to the recycling bin.", + "detailed": "Use this tool to delete a discount object in HubSpot CRM by moving it to the recycling bin. Call it when you need to remove discounts identified by a specific discount ID." + }, + "return_annotation": "Confirmation of discount object deletion to recycling bin.", + "arguments": [ + { + "name": "discount_identifier", + "alternative_names": [ + "discount_id", + "identifier_for_discount" + ], + "description": "The unique identifier of the discount object to delete and move to the recycling bin.", + "endpoint_argument_name": "discountId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/discounts/{discountId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{discountId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "discountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/discounts/{discountId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_discount_details", + "description": { + "tagline": "Update specific properties of a discount in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update on a discount object in HubSpot CRM. Specify the discount using its internal ID or by a unique property using `idProperty`. Only overwrite existing properties. Errors occur with read-only or non-existent properties. Clear properties by passing an empty string." + }, + "return_annotation": "Confirmation of discount update or error details.", + "arguments": [ + { + "name": "discount_identifier", + "alternative_names": [ + "discount_id_value", + "discount_reference" + ], + "description": "The unique identifier for the discount object. This can be the internal ID or a unique property specified by `idProperty`.", + "endpoint_argument_name": "discountId" + }, + { + "name": "discount_properties_update", + "alternative_names": [ + "update_discount_properties", + "discount_update_payload" + ], + "description": "A JSON object containing key-value pairs representing the properties of the discount to update. Pass an empty string to clear a property.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "identifier_property_name" + ], + "description": "The name of a unique property to identify the discount object. Use this instead of the internal discount ID if needed.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/discounts/{discountId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{discountId}`or optionally a unique property value as specified by the `idProperty` query param. `{discountId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "discountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_discounts_hubspot", + "description": { + "tagline": "Create a batch of discounts in HubSpot.", + "detailed": "Use this tool to create multiple discounts simultaneously in HubSpot CRM. It should be called when batch creation of discounts is needed, providing an efficient way to manage discount entries." + }, + "return_annotation": "Information about the created batch of discounts.", + "arguments": [ + { + "name": "batch_discounts_data", + "alternative_names": [ + "discounts_batch_payload", + "batch_discounts_request" + ], + "description": "JSON data for creating a batch of discounts. It includes an array of discount entries, each with properties like associations, object write trace ID, and specific properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of discounts", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_discount_records", + "description": { + "tagline": "Create or update discount records in HubSpot CRM.", + "detailed": "This tool allows the creation or update of discount records in HubSpot CRM using unique property values specified by the `idProperty` query parameter. It is useful for ensuring that discount data is up-to-date and accurately maintained." + }, + "return_annotation": "Confirmation of discount records created or updated.", + "arguments": [ + { + "name": "discount_records_data", + "alternative_names": [ + "discount_records_input", + "discount_records_payload" + ], + "description": "A JSON object containing an array of discount records, each with a unique idProperty, objectWriteTraceId, id, and properties key-value pairs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of discounts by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_discounts_batch", + "description": { + "tagline": "Archive a batch of discounts by their IDs in HubSpot CRM.", + "detailed": "This tool is used to archive multiple discount objects in HubSpot CRM by providing their IDs. It should be called when there's a need to remove or deactivate several discounts at once for organizational or business purposes." + }, + "return_annotation": "Batch discount archive status.", + "arguments": [ + { + "name": "discount_ids_to_archive", + "alternative_names": [ + "discounts_to_archive", + "ids_to_archive" + ], + "description": "A JSON array containing the IDs of discounts to archive in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of discounts by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/discounts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_discounts", + "description": { + "tagline": "Retrieve a page of discounts from HubSpot CRM.", + "detailed": "Use this tool to read a page of discounts from HubSpot CRM. You can control the returned data using the `properties` query parameter." + }, + "return_annotation": "A page of discount details from HubSpot CRM.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_limit", + "per_page_limit" + ], + "description": "The maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "pagination_token", + "cursor_token" + ], + "description": "The cursor token for pagination. Use the token from the last successfully read resource to fetch the next page.", + "endpoint_argument_name": "after" + }, + { + "name": "returned_discount_properties", + "alternative_names": [ + "discount_attributes", + "requested_properties" + ], + "description": "List of properties to include in the response. Comma-separated, ignored if not present.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List of properties to return with their history; reduces number of discounts returned per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "linked_object_references" + ], + "description": "A list of object types to retrieve associated IDs for. Unknown associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "fetch_exclusively_archived", + "retrieve_archived_only" + ], + "description": "Set to true to return only archived discounts, false to include all.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/discounts", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of discounts. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of discounts that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of discounts that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_discount", + "description": { + "tagline": "Creates a discount and returns its details.", + "detailed": "Use this tool to create a new discount with specified properties in HubSpot CRM. It returns the created discount object along with its ID." + }, + "return_annotation": "Newly created discount object, including its ID.", + "arguments": [ + { + "name": "discount_properties", + "alternative_names": [ + "discount_details", + "discount_data" + ], + "description": "JSON object containing key-value pairs for setting discount properties and associations, including types and association IDs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a discount with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard discounts is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/discounts/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_discount_records", + "description": { + "tagline": "Retrieve discount records by ID or custom property.", + "detailed": "This tool retrieves discount records from HubSpot CRM by specifying record IDs or a unique custom property. Use it to fetch detailed information about discounts in a batch." + }, + "return_annotation": "Batch of discount records based on specified IDs.", + "arguments": [ + { + "name": "discount_request_body", + "alternative_names": [ + "discount_batch_input", + "discount_retrieval_criteria" + ], + "description": "JSON object containing properties, idProperty for custom IDs, inputs for record IDs, and propertiesWithHistory for detailed properties.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "archived", + "alternative_names": [ + "archived_mode", + "archived_filter" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/discounts/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of discounts by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_emails", + "description": { + "tagline": "Create a batch of emails with specified properties.", + "detailed": "This tool is used to create multiple emails at once in a batch, using specified properties, and returns the details of the created email objects. Ideal for situations where several emails need to be generated and saved in the CRM system at once." + }, + "return_annotation": "Details of the created email objects.", + "arguments": [ + { + "name": "email_batch_details", + "alternative_names": [ + "batch_email_data", + "email_creation_inputs" + ], + "description": "JSON containing an array of email objects with their properties and associations. Each object can include details like associations, object write trace ID, and other specific properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of emails", + "description": "Create a batch of emails with specified properties and return the created objects.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/emails_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_emails_page", + "description": { + "tagline": "Retrieve a page of emails from HubSpot CRM.", + "detailed": "This tool reads a page of emails from HubSpot CRM. You can control which email properties are returned by using the `properties` query parameter." + }, + "return_annotation": "A page of emails with selected properties.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_page_limit", + "page_size_limit" + ], + "description": "The maximum number of email results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "cursor_token" + ], + "description": "The token for the next page of results, from the `paging.next.after` field of the previous response.", + "endpoint_argument_name": "after" + }, + { + "name": "returned_email_properties", + "alternative_names": [ + "email_properties_to_return", + "selected_email_properties" + ], + "description": "List the email properties to be included in the response. Specify as an array of strings representing the desired properties.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historic_properties", + "email_properties_history" + ], + "description": "List of properties to return with their history of previous values. Reduces maximum emails per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. If any specified associations don't exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "only_include_archived", + "fetch_only_archived" + ], + "description": "Set to true to retrieve only archived emails.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/emails", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of emails. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of emails that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of emails that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_email", + "description": { + "tagline": "Create an email in HubSpot CRM and retrieve its details.", + "detailed": "Use this tool to create a new email in HubSpot CRM by specifying certain properties. It returns the created email object along with its ID, facilitating the organization and tracking of email records within the CRM." + }, + "return_annotation": "Returns a copy of the created email object, including its ID.", + "arguments": [ + { + "name": "email_properties", + "alternative_names": [ + "email_data", + "email_attributes" + ], + "description": "JSON object containing key-value pairs for email properties, including associations and other attributes.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a email with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard emails is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_email_records", + "description": { + "tagline": "Retrieve email records by ID or custom property.", + "detailed": "This tool retrieves email records from HubSpot CRM by providing record IDs or using a custom unique value property. It should be called when you need details about specific email records stored within HubSpot." + }, + "return_annotation": "Batch email record details.", + "arguments": [ + { + "name": "email_records_data", + "alternative_names": [ + "email_records_request_body", + "retrieve_email_records_input" + ], + "description": "JSON data for fetching email records. Includes properties like `propertiesWithHistory`, `idProperty`, `inputs`, and `properties` to define retrieval specifics.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "only_archived_records", + "alternative_names": [ + "include_archived_emails", + "get_only_archived" + ], + "description": "Set to true to return only archived email records from HubSpot CRM.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of emails by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_or_update_hubspot_emails", + "description": { + "tagline": "Create or update HubSpot email records in batch.", + "detailed": "This tool allows you to create or update email records in HubSpot's CRM by using a unique property value to identify the records. It's useful when you need to manage email data efficiently by ensuring existing records are updated and new ones are created where needed." + }, + "return_annotation": "Confirmation of created or updated email records.", + "arguments": [ + { + "name": "email_records_data", + "alternative_names": [ + "emails_batch_data", + "hubspot_email_properties" + ], + "description": "JSON array containing email records, each with `idProperty`, `objectWriteTraceId`, `id`, and `properties` for batch upsert.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of emails by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/emails/{emailId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_email_by_id", + "description": { + "tagline": "Retrieve email object details using its ID.", + "detailed": "Use this tool to get detailed information about an email object in HubSpot CRM using its unique ID. You can control the output via query parameters." + }, + "return_annotation": "Email object details based on the provided ID.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_object_id" + ], + "description": "The unique ID or property value of the email object to be retrieved.", + "endpoint_argument_name": "emailId" + }, + { + "name": "returned_properties", + "alternative_names": [ + "response_properties", + "output_properties" + ], + "description": "A list of properties to return for the email object. Properties not present on the object will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "historical_properties" + ], + "description": "Comma-separated property names to include their history of previous values in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "object_types_for_associated_ids", + "alternative_names": [ + "associated_object_types", + "retrieve_association_ids_for_types" + ], + "description": "List the object types to retrieve associated IDs. If no associations exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_object_property", + "property_identifier_name" + ], + "description": "Specify the property name that holds unique values for the email object to be retrieved.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "include_only_archived_results", + "archived_results_only" + ], + "description": "Set to true to return only archived results. Set to false to return active results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/emails/{emailId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{emailId}`. `{emailId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/emails/{emailId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_email", + "description": { + "tagline": "Move an email to the recycling bin using its ID.", + "detailed": "This tool moves an email identified by `emailId` to the recycling bin in HubSpot CRM. It should be used when an email needs to be archived or deleted from active view." + }, + "return_annotation": "Confirmation of email archival.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_key" + ], + "description": "The unique identifier of the email to be archived in HubSpot CRM.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/emails/{emailId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{emailId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/emails/{emailId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_email_in_hubspot_crm", + "description": { + "tagline": "Updates an email object in HubSpot CRM with new property values.", + "detailed": "This tool updates properties of an email object in HubSpot CRM, identified by the internal ID or a unique property. Read-only or nonexistent properties will cause errors, and properties can be cleared by passing an empty string." + }, + "return_annotation": "Details of the updated email object in HubSpot CRM.", + "arguments": [ + { + "name": "email_identifier", + "alternative_names": [ + "email_id_key", + "unique_email_property" + ], + "description": "The unique identifier for the email object, either the internal ID or a unique property value.", + "endpoint_argument_name": "emailId" + }, + { + "name": "email_properties_update", + "alternative_names": [ + "update_email_properties", + "modify_email_properties" + ], + "description": "JSON object containing key-value pairs to update email properties. Provide property names and their new values. Pass an empty string to clear a property's value.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier", + "property_name_for_id" + ], + "description": "Name of a unique property for identifying the email object, used instead of default ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/emails/{emailId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{emailId}`or optionally a unique property value as specified by the `idProperty` query param. `{emailId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_emails_batch", + "description": { + "tagline": "Archive a batch of emails by their IDs.", + "detailed": "Use this tool to archive multiple emails in the HubSpot CRM by providing their unique IDs. Useful for organizing or cleaning up email records." + }, + "return_annotation": "Confirmation of email batch archiving.", + "arguments": [ + { + "name": "email_ids_to_archive", + "alternative_names": [ + "ids_of_emails_to_archive", + "emails_batch_ids" + ], + "description": "A JSON array of email IDs to be archived. Each element should be an object with an 'id' key, containing the email's unique ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of emails by ID", + "description": "Archive a batch of emails identified by their IDs.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_emails", + "description": { + "tagline": "Update a batch of emails by their IDs or unique properties.", + "detailed": "Use this tool to update multiple emails in bulk using their internal IDs or unique property values in HubSpot CRM." + }, + "return_annotation": "Confirmation of batch email updates.", + "arguments": [ + { + "name": "email_batch_update_data", + "alternative_names": [ + "batch_update_payload", + "email_update_requests" + ], + "description": "JSON object containing arrays of email updates, each with `idProperty`, `objectWriteTraceId`, `id`, and `properties` fields.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of emails by internal ID, or unique property values", + "description": "Update a batch of emails using their internal IDs or unique property values.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/emails/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_emails", + "description": { + "tagline": "Search for emails based on specified query parameters.", + "detailed": "Use this tool to perform a search for emails in the CRM system, returning results that match the given criteria." + }, + "return_annotation": "Matching email search results.", + "arguments": [ + { + "name": "email_search_parameters", + "alternative_names": [ + "email_search_query", + "email_search_options" + ], + "description": "A JSON object specifying query, limit, paging, sorting, properties, and filters for searching emails. Includes criteria for finding and sorting email data.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/emails/search", + "tags": [ + "Search" + ], + "summary": "Search for emails using specified criteria and filters.", + "description": "Perform a search for emails based on the provided query parameters and return matching results.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_feedback_submission_by_id", + "description": { + "tagline": "Retrieve feedback submission details by ID.", + "detailed": "Use this tool to obtain details of a feedback submission using its ID. You can specify additional properties to control the details returned." + }, + "return_annotation": "Details of the specified feedback submission.", + "arguments": [ + { + "name": "feedback_submission_id", + "alternative_names": [ + "feedback_id", + "submission_id" + ], + "description": "The ID of the feedback submission to retrieve details for. This can be the internal object ID or a unique property value specified by `idProperty`.", + "endpoint_argument_name": "feedbackSubmissionId" + }, + { + "name": "return_properties", + "alternative_names": [ + "response_properties_list", + "feedback_properties" + ], + "description": "List of properties to return in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_history_list", + "historical_properties" + ], + "description": "Comma-separated list of properties to return with their history of previous values. Ignored if not present on the object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. If nonexistent, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "id_property_name" + ], + "description": "The name of a property whose values are unique for the feedback submission object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_results_only", + "archived_submissions_only" + ], + "description": "Set to true to return only archived results, false for active ones.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{feedbackSubmissionId}`. `{feedbackSubmissionId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "feedbackSubmissionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/feedback_submissions/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_feedback_submissions", + "description": { + "tagline": "Search for feedback submissions in HubSpot CRM.", + "detailed": "This tool allows you to search for feedback submissions within the HubSpot CRM, helping you find specific feedback entries based on your search criteria." + }, + "return_annotation": "Returns feedback submission search results.", + "arguments": [ + { + "name": "feedback_search_body", + "alternative_names": [ + "search_request_body", + "feedback_submission_search" + ], + "description": "A JSON object containing parameters like query, limit, after, sorts, properties, and filterGroups for searching feedback submissions. This includes defining search criteria, sorting, and pagination.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/feedback_submissions/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/feedback_submissions/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_feedback_records", + "description": { + "tagline": "Retrieve feedback submission records by ID or custom properties.", + "detailed": "Use this tool to fetch feedback submission records from HubSpot CRM using either a record ID or a custom unique value property (`idProperty`)." + }, + "return_annotation": "List of feedback submission records.", + "arguments": [ + { + "name": "feedback_request_body", + "alternative_names": [ + "feedback_data_payload", + "feedback_records_payload" + ], + "description": "JSON object containing `propertiesWithHistory`, `idProperty`, `inputs`, and `properties` to specify retrieval details.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_results_only", + "fetch_archived_only" + ], + "description": "Set to true to return only archived feedback submission records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/feedback_submissions/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of feedback submissions by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/feedback_submissions_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_feedback_submissions", + "description": { + "tagline": "Retrieve a page of feedback submissions from the CRM.", + "detailed": "This tool retrieves a page of feedback submissions from HubSpot CRM. It allows control over the returned data using the 'properties' query parameter." + }, + "return_annotation": "A page of feedback submissions with specified properties.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit", + "page_limit" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "cursor_after" + ], + "description": "The token of the last read resource for fetching the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "feedback_submission_properties", + "fields_to_retrieve" + ], + "description": "List of properties to return for each feedback submission. Comma separated. Ignores non-existing properties.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "historical_properties" + ], + "description": "A list of property names whose history of values should be returned. Properties not present will be ignored. Reduces the maximum number of submissions per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Comma separated list of object types to retrieve associated IDs for, like 'contacts' or 'companies'. Ignored if nonexistent.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "retrieve_only_archived", + "fetch_archived_exclusively" + ], + "description": "Set to true to return only archived feedback submissions; false to include both archived and active submissions.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/feedback_submissions", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of feedback submissions. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of feedback submissions that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of feedback submissions that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/fees/{feeId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_fee_details", + "description": { + "tagline": "Retrieve information about a specific fee by ID.", + "detailed": "This tool is used to get detailed information about a fee object in HubSpot CRM using the fee's unique identifier. It can control the returned data with optional query parameters." + }, + "return_annotation": "Detailed information about a specific fee object.", + "arguments": [ + { + "name": "fee_identifier", + "alternative_names": [ + "fee_id_value", + "unique_fee_id" + ], + "description": "The unique identifier for the fee object to retrieve. It can be the internal object ID or a value from a unique property specified by the `idProperty` parameter.", + "endpoint_argument_name": "feeId" + }, + { + "name": "return_properties", + "alternative_names": [ + "response_attributes", + "output_fields" + ], + "description": "A list of properties to return for the fee object. Any non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_history_list", + "historical_properties" + ], + "description": "List of properties to return with their history of previous values, specified as strings. Non-existent properties will be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_entities", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "unique_key_property" + ], + "description": "Specify the property name with unique values for the fee object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_return_archived_results", + "alternative_names": [ + "archived_only", + "return_only_archived" + ], + "description": "Set to true to retrieve only archived results. False for non-archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/fees/{feeId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{feeId}`. `{feeId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "feeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/fees/{feeId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_fee_object", + "description": { + "tagline": "Move a fee object to the recycling bin using its fee ID.", + "detailed": "Call this tool to delete a fee object in HubSpot CRM. Useful for removing unwanted or outdated fee records by providing the specific fee ID." + }, + "return_annotation": "Confirmation of fee object deletion in HubSpot CRM.", + "arguments": [ + { + "name": "fee_id_to_delete", + "alternative_names": [ + "fee_identifier", + "fee_ref_id" + ], + "description": "The unique identifier of the fee object to be deleted in HubSpot CRM.", + "endpoint_argument_name": "feeId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/fees/{feeId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{feeId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "feeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/fees/{feeId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_fee_details", + "description": { + "tagline": "Update specific details of a fee in the CRM.", + "detailed": "This tool performs a partial update of a fee record identified by its internal ID or another unique property. Use it to overwrite existing property values or clear them by passing an empty string. Be aware that read-only or non-existent properties will cause an error." + }, + "return_annotation": "Confirmation of the fee details update operation.", + "arguments": [ + { + "name": "fee_identifier", + "alternative_names": [ + "fee_id", + "unique_fee_identifier" + ], + "description": "The ID or unique property value that identifies the fee object to update.", + "endpoint_argument_name": "feeId" + }, + { + "name": "fee_properties_to_update", + "alternative_names": [ + "fee_details_to_modify", + "fee_attributes_to_adjust" + ], + "description": "JSON object containing key-value pairs to update fee properties. Read-only or non-existent properties will cause an error.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "distinct_property_name" + ], + "description": "Specify the unique property name to identify the object instead of the default ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/fees/{feeId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{feeId}`or optionally a unique property value as specified by the `idProperty` query param. `{feeId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "feeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_hubspot_fees", + "description": { + "tagline": "Create or update fee records in HubSpot CRM.", + "detailed": "This tool should be called to create new fee records or update existing ones in HubSpot CRM. It uses a unique property value specified by the `idProperty` query parameter to identify records. Ideal for batch processing of fee information." + }, + "return_annotation": "Creates or updates fee records in HubSpot CRM.", + "arguments": [ + { + "name": "fee_records_data", + "alternative_names": [ + "fee_records_payload", + "fees_data_batch" + ], + "description": "A JSON array of fee records to create or update, including unique IDs, properties, and trace identifiers.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of fees by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/fees", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_crm_fees", + "description": { + "tagline": "Fetch a list of fees from the CRM.", + "detailed": "Retrieve a page of fee objects from the CRM, allowing control over returned properties through query parameters." + }, + "return_annotation": "A list of fee objects from the CRM system.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "max_results_page", + "results_limit" + ], + "description": "The maximum number of fees to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "cursor_token_next", + "pagination_token" + ], + "description": "The token used to retrieve the next page of results. Use the token returned in `paging.next.after` from a previous response.", + "endpoint_argument_name": "after" + }, + { + "name": "fee_properties_to_return", + "alternative_names": [ + "fee_attributes", + "fee_columns" + ], + "description": "List of properties to be returned in the response. If a property is not present, it will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "property_with_past_values" + ], + "description": "List of properties to return with their history. Reduces max number of fees per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for. Ignored if associations don't exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "retrieve_archived_fees", + "fetch_archived_only" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/fees", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of fees. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of fees that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of fees that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_fee_in_crm", + "description": { + "tagline": "Create a fee in the CRM and receive the object's details.", + "detailed": "Call this tool to add a new fee in the CRM system using specified properties. It returns the newly created fee object along with its ID." + }, + "return_annotation": "A copy of the created fee object, including its ID.", + "arguments": [ + { + "name": "fee_properties", + "alternative_names": [ + "fee_attributes", + "fee_details" + ], + "description": "JSON object containing key-value pairs for setting properties of the new fee. Also, include any associations with specified types and categories.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a fee with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard fees is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_fees", + "description": { + "tagline": "Create a batch of fees in HubSpot CRM.", + "detailed": "This tool allows the creation of multiple fees in a single batch within HubSpot CRM. It should be called when there is a need to add a set of new fees to the CRM system efficiently." + }, + "return_annotation": "Details of the created fees batch.", + "arguments": [ + { + "name": "fees_batch_request_body", + "alternative_names": [ + "fees_batch_payload", + "create_fees_batch_body" + ], + "description": "A JSON object containing the details for each fee to be created, including associations and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of fees", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_fees_in_crm", + "description": { + "tagline": "Search for fees in HubSpot CRM.", + "detailed": "Use this tool to search for fees in the HubSpot CRM database. It should be called when you need to find specific fee records based on search criteria." + }, + "return_annotation": "Search results for fees in the CRM system.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "fee_search_parameters", + "crm_search_details" + ], + "description": "The search criteria in JSON format, including query, limit, paging token, sorting order, properties to include, and filter groups.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_fees", + "description": { + "tagline": "Update multiple fees by internal ID or unique properties.", + "detailed": "Use this tool to update a batch of fees in HubSpot CRM by specifying internal IDs or unique property values. Call this tool when you need to make bulk updates to fee records." + }, + "return_annotation": "Confirmation of batch fee updates.", + "arguments": [ + { + "name": "batch_fee_updates", + "alternative_names": [ + "fee_update_requests", + "update_batch_request" + ], + "description": "JSON object containing a list of fee updates. Each update includes properties like 'id', 'idProperty', 'properties', and 'objectWriteTraceId'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of fees by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_fees_batch", + "description": { + "tagline": "Archives a batch of fees by their IDs in HubSpot CRM.", + "detailed": "Use this tool to archive multiple fee records in HubSpot CRM by providing their IDs. Ideal for managing outdated or unnecessary fee entries efficiently." + }, + "return_annotation": "Confirmation of archived fees batch.", + "arguments": [ + { + "name": "fee_ids_to_archive", + "alternative_names": [ + "fees_batch_ids", + "ids_for_archiving" + ], + "description": "A JSON array containing the IDs of the fees to archive. Each ID should be a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of fees by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/fees/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_fee_records", + "description": { + "tagline": "Retrieve fee records by ID or custom property.", + "detailed": "Use this tool to retrieve fee records from HubSpot CRM by specifying record IDs or using a custom unique value property. Useful for accessing detailed record information in batch." + }, + "return_annotation": "List of fee records with specified IDs or custom properties.", + "arguments": [ + { + "name": "fee_records_request", + "alternative_names": [ + "fee_entries_request", + "fee_data_request" + ], + "description": "JSON object including propertiesWithHistory, idProperty, inputs, and properties to specify how fee records are retrieved.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_archived_results", + "fetch_archived_records" + ], + "description": "Set to true to return only archived fee records. False to return active records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/fees/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of fees by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_goal_targets_batch", + "description": { + "tagline": "Batch create multiple goal targets in HubSpot CRM.", + "detailed": "Use this tool to create multiple goal targets at once in HubSpot CRM. It is suited for managing and setting up several targets simultaneously, aiding in efficient CRM organization." + }, + "return_annotation": "Confirmation of batch creation of goal targets.", + "arguments": [ + { + "name": "goal_targets_data", + "alternative_names": [ + "goal_target_batch_data", + "goal_targets_input" + ], + "description": "A JSON array containing multiple goal target objects. Each target object must include details such as associations, objectWriteTraceId, and properties. This enables the creation of multiple goal targets within HubSpot CRM in one operation.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of goal targets", + "description": "Create multiple goal targets in a single batch operation.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_goal_targets", + "description": { + "tagline": "Retrieve goal target records using record ID or custom value.", + "detailed": "Use this tool to retrieve goal target records from HubSpot CRM by providing either the record ID or a custom unique value property." + }, + "return_annotation": "Records retrieved by record ID or custom unique value property.", + "arguments": [ + { + "name": "goal_target_request_body", + "alternative_names": [ + "goal_target_body", + "target_request_data" + ], + "description": "JSON object with 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties' to specify record retrieval criteria.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "fetch_archived_records_only", + "show_only_archived_targets" + ], + "description": "Set to true to return only the archived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of goal targets by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/goal_targets/{goalTargetId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_goal_target_by_id", + "description": { + "tagline": "Retrieve goal target object details using its ID.", + "detailed": "This tool retrieves details of a goal target object identified by `goalTargetId`. It can use either the default internal object ID or any unique property value specified by the `idProperty` query parameter. The `properties` query parameter can control what information is returned." + }, + "return_annotation": "Details of the specified goal target object.", + "arguments": [ + { + "name": "goal_target_id", + "alternative_names": [ + "goal_target_identifier", + "target_id" + ], + "description": "The unique identifier for the goal target object. Can be the internal object ID or a unique property value specified by `idProperty`.", + "endpoint_argument_name": "goalTargetId" + }, + { + "name": "returned_properties", + "alternative_names": [ + "properties_list", + "response_properties" + ], + "description": "List of properties to return. Ignored if not present on the object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_history_list", + "properties_history_included" + ], + "description": "Comma-separated properties to return with their value histories. Ignored if properties are absent on the object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Specify object types to retrieve associated IDs. If not present, they will be ignored. Use commas to separate multiple types.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "unique_id_field" + ], + "description": "The property name used as a unique identifier for the goal target object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "archived_results", + "alternative_names": [ + "only_archived", + "return_only_archived" + ], + "description": "Set to true to return only archived results. Default is false.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/goal_targets/{goalTargetId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{goalTargetId}`. `{goalTargetId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "goalTargetId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/goal_targets/{goalTargetId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_goal_target", + "description": { + "tagline": "Deletes a goal target by its ID to the recycling bin.", + "detailed": "Use this tool to delete a specific goal target by providing its unique ID. This action will move the target to the recycling bin, allowing for potential recovery." + }, + "return_annotation": "Indicates whether the goal target was successfully deleted.", + "arguments": [ + { + "name": "goal_target_id", + "alternative_names": [ + "target_id", + "goal_id" + ], + "description": "The unique identifier for the goal target to be deleted. Required to specify which target to move to the recycling bin.", + "endpoint_argument_name": "goalTargetId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/goal_targets/{goalTargetId}", + "tags": [ + "Basic" + ], + "summary": "Delete a goal target by ID", + "description": "Delete a goal target by `{goalTargetId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "goalTargetId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/goal_targets/{goalTargetId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_goal_target", + "description": { + "tagline": "Update properties of a HubSpot goal target.", + "detailed": "Use this tool to perform a partial update on a HubSpot goal target object using its ID or a unique property. This is useful for editing specific properties of a goal target. Ensure only modifiable properties are included, as read-only or non-existent properties will cause errors. Clear properties by passing an empty string." + }, + "return_annotation": "Confirmation of the update status for the goal target.", + "arguments": [ + { + "name": "goal_target_id", + "alternative_names": [ + "target_id", + "goal_id" + ], + "description": "The internal ID of the goal target to update. Use this to specify which goal target object to modify.", + "endpoint_argument_name": "goalTargetId" + }, + { + "name": "goal_target_properties", + "alternative_names": [ + "target_properties", + "update_properties" + ], + "description": "JSON object with key-value pairs representing the properties to update. Clear a property by using an empty string as its value.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_key" + ], + "description": "The name of a unique property for the goal target object used for identification or update.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/goal_targets/{goalTargetId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{goalTargetId}`or optionally a unique property value as specified by the `idProperty` query param. `{goalTargetId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "goalTargetId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_goal_targets", + "description": { + "tagline": "Search for goal targets using specified criteria.", + "detailed": "This tool allows searching for goal targets within the HubSpot CRM based on specified criteria. Call this tool when you need to locate specific goal targets or retrieve a list based on certain parameters." + }, + "return_annotation": "Search results for goal targets.", + "arguments": [ + { + "name": "goal_target_search_criteria", + "alternative_names": [ + "goal_target_query_filters", + "goal_target_parameters" + ], + "description": "A JSON object with search criteria for goal targets, including query, limit, paging, sorting, properties, and filters.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets/search", + "tags": [ + "Search" + ], + "summary": "Perform a search for goal targets based on various filters and criteria.", + "description": "Search for goal targets using specified criteria.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_goal_targets_batch", + "description": { + "tagline": "Archive multiple goal targets using their IDs in one batch.", + "detailed": "This tool allows users to archive multiple goal targets in HubSpot CRM by providing their IDs. It's useful for efficiently managing goal targets that are no longer needed." + }, + "return_annotation": "Confirmation of archived goal targets.", + "arguments": [ + { + "name": "goal_target_ids", + "alternative_names": [ + "target_ids", + "ids_to_archive" + ], + "description": "A JSON array of goal target IDs to archive. Each ID should be a string. This allows batch archiving of specific goal targets in the HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of goal targets by ID", + "description": "Archive multiple goal targets in a single batch operation using their IDs.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_goal_targets", + "description": { + "tagline": "Update multiple goal targets in HubSpot CRM.", + "detailed": "Use this tool to update several goal targets simultaneously in HubSpot CRM using their internal IDs or unique property values." + }, + "return_annotation": "Information about the updated goal targets.", + "arguments": [ + { + "name": "goal_targets_update_data", + "alternative_names": [ + "goal_target_updates", + "bulk_goal_target_data" + ], + "description": "A JSON array of objects, each containing `id`, `idProperty`, `objectWriteTraceId`, and `properties` to specify which goal targets to update and their new values.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of goal targets by internal ID, or unique property values", + "description": "Update multiple goal targets in a single batch operation using their internal IDs or unique property values.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_goal_targets", + "description": { + "tagline": "Create or update goal target records in HubSpot CRM.", + "detailed": "This tool allows creation or updating of goal target records in HubSpot CRM using a unique property for identification. Use it to ensure goal targets are up-to-date." + }, + "return_annotation": "Confirmation of goal targets upsertion status.", + "arguments": [ + { + "name": "goal_targets_data", + "alternative_names": [ + "targets_payload", + "goal_records" + ], + "description": "JSON array of goal target records to create or update, including unique id, idProperty, and other properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of goal targets by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/goal_targets_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_goal_targets", + "description": { + "tagline": "Retrieve a page of goal targets from HubSpot CRM.", + "detailed": "Use this tool to access a specific page of goal targets within HubSpot CRM. You can control the data returned by specifying the `properties` query parameter." + }, + "return_annotation": "A page of goal target data.", + "arguments": [ + { + "name": "results_per_page_limit", + "alternative_names": [ + "max_results_display", + "page_results_limit" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "page_cursor", + "result_cursor" + ], + "description": "Token of the last successfully read item. Use it for fetching the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "returned_properties", + "alternative_names": [ + "output_properties", + "response_properties" + ], + "description": "Comma-separated list of properties to return in the response. Ignored if absent on requested objects.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_history_list", + "historical_properties" + ], + "description": "Comma-separated properties to return with their history of previous values. Reduces the max number of goals retrievable in one request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "List of object types to retrieve associated IDs for, ignored if non-existent.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "fetch_only_archived_results", + "show_archived_exclusively" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/goal_targets", + "tags": [ + "Basic" + ], + "summary": "Get a page of goal targets", + "description": "Read a page of goal targets. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of goal targets that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of goal targets that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/goal_targets_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_goal_target", + "description": { + "tagline": "Create a goal target in HubSpot CRM.", + "detailed": "Use this tool to create a new goal target in the HubSpot CRM system. It takes the properties for the goal target and returns a copy of the created object along with its ID." + }, + "return_annotation": "Details of the created goal target, including the ID.", + "arguments": [ + { + "name": "goal_target_properties", + "alternative_names": [ + "goal_target_data", + "goal_target_attributes" + ], + "description": "A JSON object containing properties and associations for the new goal target. Include key-value pairs for properties and an array of associations with details like association category and type ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/goal_targets", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a goal target with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard goal targets is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.goals.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_invoices", + "description": { + "tagline": "Create a batch of invoices swiftly.", + "detailed": "Use this tool to create multiple invoices at once in HubSpot CRM when bulk billing is required." + }, + "return_annotation": "Confirmation of invoice batch creation.", + "arguments": [ + { + "name": "invoice_batch_data", + "alternative_names": [ + "invoices_data", + "batch_invoice_data" + ], + "description": "JSON object containing a list of invoices with their properties and associations. Each invoice should include necessary details like properties, associations, and object write trace IDs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of invoices", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_invoices", + "description": { + "tagline": "Find invoices in the HubSpot CRM.", + "detailed": "Use this tool to search and retrieve invoices from the HubSpot CRM based on specific criteria." + }, + "return_annotation": "Search results for invoices.", + "arguments": [ + { + "name": "invoice_search_criteria", + "alternative_names": [ + "invoice_query_body", + "invoice_request_body" + ], + "description": "The parameters for searching invoices, including query string, result limits, pagination, sorting, property filters, etc.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_invoice_records", + "description": { + "tagline": "Retrieve invoice records by ID or custom property.", + "detailed": "Use this tool to obtain invoice records by specifying the record ID or using a custom unique value property. Ideal for accessing specific invoice data within the HubSpot CRM." + }, + "return_annotation": "Invoice records retrieved by ID or custom property.", + "arguments": [ + { + "name": "invoice_request_body", + "alternative_names": [ + "invoice_data_request", + "invoice_fetch_request" + ], + "description": "JSON object with 'idProperty' for custom ID retrieval, 'inputs' for record IDs, and 'properties' for setting key-value pairs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_archived_results", + "fetch_archived_invoices" + ], + "description": "Set to true to return only results that have been archived from HubSpot CRM.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of invoices by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/invoices/{invoiceId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_invoice_by_id", + "description": { + "tagline": "Retrieve invoice details by ID.", + "detailed": "Fetch invoice information using the unique identifier, `{invoiceId}`. This can include internal object ID or any unique property value specified by the `idProperty` parameter." + }, + "return_annotation": "Details of the specified invoice.", + "arguments": [ + { + "name": "invoice_identifier", + "alternative_names": [ + "invoice_id", + "invoice_unique_id" + ], + "description": "The unique identifier for the invoice. This can be the internal object ID or any unique property value as specified by the `id_property`.", + "endpoint_argument_name": "invoiceId" + }, + { + "name": "requested_properties", + "alternative_names": [ + "return_properties", + "invoice_properties" + ], + "description": "List of properties to be returned in the response for the specified invoice. Properties not present on the object will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "historical_properties", + "alternative_names": [ + "properties_with_history", + "properties_history" + ], + "description": "Comma-separated list of properties to return along with their history of previous values.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "List of object types to retrieve associated IDs for, separated by commas. Ignored if associations don't exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_identifier_property", + "alternative_names": [ + "unique_property_name", + "identifier_property_name" + ], + "description": "The name of a property whose values uniquely identify the invoice object. Specify this to use a unique property other than the internal object ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_results_only", + "only_archived_results" + ], + "description": "Specify `True` to return only archived results. `False` returns both archived and non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/invoices/{invoiceId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{invoiceId}`. `{invoiceId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "invoiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/invoices/{invoiceId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_invoice", + "description": { + "tagline": "Archive an invoice by moving it to the recycling bin.", + "detailed": "Use this tool to archive an invoice in HubSpot CRM by moving it to the recycling bin. It is identified by the `{invoiceId}` parameter." + }, + "return_annotation": "Confirmation of invoice deletion action.", + "arguments": [ + { + "name": "invoice_identifier", + "alternative_names": [ + "invoice_id", + "identifier" + ], + "description": "The unique identifier for the invoice to be archived in HubSpot CRM.", + "endpoint_argument_name": "invoiceId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/invoices/{invoiceId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{invoiceId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "invoiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/invoices/{invoiceId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_invoice_details", + "description": { + "tagline": "Update invoice details in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update of an invoice in HubSpot CRM. The invoice can be identified by its internal ID or a unique property. Only existing properties with provided values will be updated, and any read-only or non-existent properties will cause an error." + }, + "return_annotation": "Confirmation of invoice update or error message", + "arguments": [ + { + "name": "invoice_identifier", + "alternative_names": [ + "invoice_id", + "invoice_key" + ], + "description": "Unique identifier for the invoice, either the internal ID or specified unique property value, to update in HubSpot CRM.", + "endpoint_argument_name": "invoiceId" + }, + { + "name": "invoice_update_properties", + "alternative_names": [ + "invoice_properties_update", + "properties_to_update" + ], + "description": "JSON object with key-value pairs representing the invoice properties to update. Only existing properties can be updated.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property_name", + "unique_identifier_property" + ], + "description": "Name of the unique property for identifying the invoice object.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/invoices/{invoiceId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{invoiceId}`or optionally a unique property value as specified by the `idProperty` query param. `{invoiceId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "invoiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_invoices_batch", + "description": { + "tagline": "Updates multiple invoices in the HubSpot CRM.", + "detailed": "This tool updates a batch of invoices in HubSpot CRM using either internal IDs or unique property values. It should be called when you need to modify multiple invoice records simultaneously." + }, + "return_annotation": "Confirmation of invoice batch update.", + "arguments": [ + { + "name": "invoices_update_data", + "alternative_names": [ + "batch_update_data", + "invoice_update_payload" + ], + "description": "A JSON object containing a list of invoices to update. Each invoice includes 'idProperty', 'objectWriteTraceId', 'id', and 'properties'. 'idProperty' is a unique identifier property, 'objectWriteTraceId' is a request trace ID, 'id' is the invoice ID or unique property, and 'properties' contains the invoice fields to update.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of invoices by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/invoices_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_invoices", + "description": { + "tagline": "Retrieve a page of invoices from HubSpot CRM.", + "detailed": "Use this tool to read a page of invoices from HubSpot CRM. You can control the return data by specifying desired properties through the query parameters." + }, + "return_annotation": "A list of invoice details from HubSpot CRM.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_per_page_limit", + "page_size_limit" + ], + "description": "The maximum number of invoice results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "pagination_token" + ], + "description": "The token for the last successfully read resource to retrieve the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "specified_properties", + "alternative_names": [ + "selected_properties", + "invoice_properties" + ], + "description": "List of invoice property names to return. Ignored if properties are not present on the objects.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List properties to return with their historical values. Reduced invoice limit per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "linked_object_types" + ], + "description": "A list of object types whose associated IDs should be retrieved. Ignored if associations do not exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_archived_only", + "filter_archived" + ], + "description": "Set to true to return only archived invoices; false for all invoices.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/invoices", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of invoices. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of invoices that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of invoices that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_invoice", + "description": { + "tagline": "Create an invoice in HubSpot CRM and retrieve its details.", + "detailed": "This tool creates a new invoice in HubSpot CRM using the provided properties and returns the created invoice's details, including its ID." + }, + "return_annotation": "Details of the created invoice, including its ID.", + "arguments": [ + { + "name": "invoice_properties", + "alternative_names": [ + "invoice_data", + "invoice_details" + ], + "description": "Key-value pairs for setting properties for the new invoice, including associations to other objects.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a invoice with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard invoices is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_hubspot_invoices", + "description": { + "tagline": "Create or update HubSpot invoice records in batch.", + "detailed": "This tool creates or updates HubSpot invoice records using a unique property identifier specified by the `idProperty` parameter. It should be called when you need to ensure invoice records are accurately reflected in HubSpot CRM." + }, + "return_annotation": "Confirmation of invoices upsert operation.", + "arguments": [ + { + "name": "invoice_data_batch", + "alternative_names": [ + "batch_invoice_data", + "invoice_records" + ], + "description": "A JSON array containing invoice records, where each record includes `idProperty`, `objectWriteTraceId`, `id`, and `properties` as key-value pairs. These are used to upsert (create or update) invoices in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of invoices by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/invoices/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_invoices_batch", + "description": { + "tagline": "Archive a batch of invoices by their IDs.", + "detailed": "Use this tool to archive multiple invoices at once by providing their IDs. It should be called when there is a need to organize or hide invoices that are no longer active or needed." + }, + "return_annotation": "Confirmation of invoice batch archiving.", + "arguments": [ + { + "name": "invoice_ids_to_archive", + "alternative_names": [ + "ids_for_invoice_archiving", + "invoice_id_list_to_archive" + ], + "description": "A JSON array of invoice IDs to be archived. Each ID should be a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/invoices/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of invoices by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.invoices.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/leads/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_lead_records", + "description": { + "tagline": "Retrieve lead records by ID or custom unique property.", + "detailed": "This tool fetches lead records from HubSpot CRM using specified record IDs or a custom unique value property if provided. It is useful for obtaining detailed information on leads based on specific identifiers." + }, + "return_annotation": "Returns lead records based on specified IDs or custom property values.", + "arguments": [ + { + "name": "lead_records_input", + "alternative_names": [ + "lead_record_details", + "lead_record_parameters" + ], + "description": "A JSON object containing details such as `idProperty`, `inputs`, and `properties` for retrieving lead records.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_archived", + "show_archived_records" + ], + "description": "Return only results that have been archived. Set to 'true' to filter by archived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/leads/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of leads by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/leads/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_crm_leads", + "description": { + "tagline": "Search for leads in HubSpot CRM.", + "detailed": "This tool searches for leads in the HubSpot CRM. Use it when you want to query and retrieve lead information based on specific criteria." + }, + "return_annotation": "Search results for CRM leads.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "lead_search_criteria", + "crm_search_criteria" + ], + "description": "A JSON object specifying search parameters like query string, limit, pagination, sorting, properties, and filter groups.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/leads/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/leads_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_leads_page", + "description": { + "tagline": "Retrieve a page of leads from HubSpot CRM.", + "detailed": "This tool fetches a page of leads from the HubSpot CRM. It allows you to control the properties returned for the leads through query parameters." + }, + "return_annotation": "A page of lead details from HubSpot CRM.", + "arguments": [ + { + "name": "results_limit_per_page", + "alternative_names": [ + "max_results_per_page", + "leads_page_size" + ], + "description": "Defines the maximum number of leads to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "continue_from_token" + ], + "description": "The cursor token to continue retrieving leads from where the last page ended.", + "endpoint_argument_name": "after" + }, + { + "name": "lead_properties_to_return", + "alternative_names": [ + "lead_fields_requested", + "lead_details_required" + ], + "description": "An array of the property names to include in the lead details response. Unavailable properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "history_enabled_properties", + "properties_with_past_values" + ], + "description": "List of properties whose historical values will be returned. Reduce max leads per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "object_associations", + "related_objects" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for; ignored if non-existent.", + "endpoint_argument_name": "associations" + }, + { + "name": "archived_leads_only", + "alternative_names": [ + "include_archived_leads", + "fetch_archived_leads" + ], + "description": "Return only leads that have been archived. Set to true to include only archived leads, false to exclude them.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/leads", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of leads. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of leads that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of leads that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/leads_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_lead_hubspot", + "description": { + "tagline": "Create a new lead in HubSpot CRM.", + "detailed": "Use this tool to create a new lead in HubSpot CRM by providing the necessary properties. It returns a copy of the lead object, including the ID." + }, + "return_annotation": "Details of the created lead including its ID.", + "arguments": [ + { + "name": "lead_properties", + "alternative_names": [ + "lead_data", + "lead_info" + ], + "description": "A JSON object containing key-value pairs for setting properties of the new lead, including associations and other attributes.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/leads", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a lead with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard leads is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/leads/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_leads_batch", + "description": { + "tagline": "Create a batch of new leads in HubSpot CRM.", + "detailed": "Use this tool to add multiple new leads to your HubSpot CRM account in one operation. Ideal for onboarding new leads efficiently." + }, + "return_annotation": "Information about the created leads.", + "arguments": [ + { + "name": "lead_batch_data", + "alternative_names": [ + "leads_data_input", + "batch_lead_info" + ], + "description": "JSON object containing the data for each lead. Include associations, trace ID, and properties for each lead entry.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/leads/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of leads", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/leads/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_leads_batch", + "description": { + "tagline": "Update multiple leads in a batch by ID or unique properties.", + "detailed": "Use this tool to update a set of leads in HubSpot CRM using their internal IDs or unique property values. This is useful for making bulk changes efficiently." + }, + "return_annotation": "Confirmation of batch lead updates.", + "arguments": [ + { + "name": "leads_update_data", + "alternative_names": [ + "lead_batch_data", + "bulk_lead_update_info" + ], + "description": "A JSON object containing an array of leads with IDs or unique property values and their updated properties. Each lead entry includes 'idProperty' for a unique property name, 'objectWriteTraceId' for tracing, 'id' which can be an object ID or unique property value, and 'properties' as key-value pairs to update.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/leads/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of leads by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/leads/{leadsId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_lead_by_id", + "description": { + "tagline": "Retrieve a lead by its unique identifier.", + "detailed": "This tool retrieves detailed information about a lead from HubSpot CRM using a unique identifier. It allows filtering of returned data using optional query parameters such as `idProperty` for specifying unique properties and `properties` for controlling which data is returned." + }, + "return_annotation": "Detailed information about a specific lead.", + "arguments": [ + { + "name": "lead_identifier", + "alternative_names": [ + "lead_id", + "lead_unique_identifier" + ], + "description": "The unique identifier for the lead. Typically the internal ID, or a unique property value if specified by `idProperty`.", + "endpoint_argument_name": "leadsId" + }, + { + "name": "returned_properties", + "alternative_names": [ + "properties_list", + "lead_properties" + ], + "description": "A list of properties to be returned in the response. Only specified properties present on the lead will be included.", + "endpoint_argument_name": "properties" + }, + { + "name": "return_properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "A list of properties to return with their history of previous values. Comma-separated values should be used. Ignored if properties are not present.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for, with non-existent associations ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_name_for_id" + ], + "description": "Specifies a unique property name to identify the lead. Overrides default ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_archived_results", + "alternative_names": [ + "return_archived_only", + "get_archived_results" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/leads/{leadsId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{leadsId}`. `{leadsId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "leadsId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/leads/{leadsId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_hubspot_lead", + "description": { + "tagline": "Archive a HubSpot CRM lead by identifier.", + "detailed": "Use this tool to move a HubSpot CRM lead, identified by `leadsId`, to the recycling bin. Ideal for managing and removing leads from active status." + }, + "return_annotation": "Confirms lead has been archived in HubSpot CRM.", + "arguments": [ + { + "name": "lead_identifier", + "alternative_names": [ + "lead_id", + "hubspot_lead_id" + ], + "description": "The unique identifier for the lead to be archived in HubSpot CRM.", + "endpoint_argument_name": "leadsId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/leads/{leadsId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{leadsId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "leadsId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/leads/{leadsId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_lead_details", + "description": { + "tagline": "Update details of a specific lead in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update to the details of a specific lead in the HubSpot CRM. You can specify the lead using their internal object ID or a unique property value. Only provided properties will be updated. This tool should be called when you need to update certain fields of a lead without altering others. Ensure that read-only and non-existent properties are not included, as these will result in an error." + }, + "return_annotation": "Updates details of a specified lead in HubSpot CRM.", + "arguments": [ + { + "name": "lead_identifier", + "alternative_names": [ + "lead_id", + "lead_reference" + ], + "description": "The internal object ID or unique property value used to identify the lead in HubSpot CRM. Required for updating the lead details.", + "endpoint_argument_name": "leadsId" + }, + { + "name": "lead_update_properties", + "alternative_names": [ + "lead_details_update", + "lead_property_values" + ], + "description": "A JSON object with key-value pairs for the lead properties to update. Only specify properties that need to change. Read-only and non-existent properties will cause errors.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_property_identifier", + "lead_unique_property" + ], + "description": "Specify the name of a unique property to identify the lead, instead of using the internal ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/leads/{leadsId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{leadsId}`or optionally a unique property value as specified by the `idProperty` query param. `{leadsId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "leadsId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/leads/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_leads_batch", + "description": { + "tagline": "Archive a batch of leads by ID in HubSpot CRM.", + "detailed": "Use this tool to archive multiple leads in HubSpot CRM by providing their IDs. Useful for managing large numbers of leads efficiently." + }, + "return_annotation": "Confirms the batch archiving of leads.", + "arguments": [ + { + "name": "lead_ids_to_archive", + "alternative_names": [ + "ids_of_leads_to_remove", + "archive_lead_ids" + ], + "description": "A JSON array of objects containing the lead IDs to be archived. Each object should include an 'id' field as a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/leads/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of leads by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.leads.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_association_limit_records", + "description": { + "tagline": "Fetch records near association limits between two objects.", + "detailed": "Use this tool to retrieve records that are close to or have reached the association limits between specified objects in HubSpot CRM. This is useful for monitoring and managing object relationships within the CRM system." + }, + "return_annotation": "Records nearing or at association limits between objects.", + "arguments": [ + { + "name": "source_object_type_id", + "alternative_names": [ + "origin_object_type_id", + "starting_object_type_id" + ], + "description": "Specifies the ID of the source object type to check association limits from.", + "endpoint_argument_name": "fromObjectTypeId" + }, + { + "name": "to_object_type_id", + "alternative_names": [ + "target_object_type_id", + "destination_object_type_id" + ], + "description": "The ID of the target object type for the association limit query.", + "endpoint_argument_name": "toObjectTypeId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}", + "tags": [ + "Limits" + ], + "summary": "Read record association limits between two objects", + "description": "Returns records approaching or at association limits between two objects", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "fromObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/associations/labels", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_custom_association_labels_limits", + "description": { + "tagline": "Get limits and usage for custom association labels in HubSpot CRM.", + "detailed": "This tool retrieves limits and current usage information for custom association labels within the HubSpot CRM environment. It should be called when you need to understand the constraints or current utilization of these labels." + }, + "return_annotation": "Limits and usage data for custom association labels.", + "arguments": [ + { + "name": "source_object_type_id", + "alternative_names": [ + "from_object_type_identifier", + "source_entity_type_id" + ], + "description": "The unique identifier for the source object type. It specifies which object type the association is coming from in the CRM.", + "endpoint_argument_name": "fromObjectTypeId" + }, + { + "name": "target_object_type_id", + "alternative_names": [ + "destination_object_type_id", + "end_object_type_id" + ], + "description": "The ID of the target object type to which the association label applies. Specify the target entity in HubSpot CRM.", + "endpoint_argument_name": "toObjectTypeId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/limits/associations/labels", + "tags": [ + "Limits" + ], + "summary": "Read association label limits", + "description": "Returns limits and usage for custom association labels", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "fromObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/associations/records/{fromObjectTypeId}/to", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_association_limit_objects", + "description": { + "tagline": "Fetch objects approaching association limits for a specified type.", + "detailed": "Use this tool to retrieve objects where the specified 'from' object type has records that are nearing or have reached their association limits in HubSpot CRM." + }, + "return_annotation": "Objects with records nearing association limits.", + "arguments": [ + { + "name": "from_object_type_id", + "alternative_names": [ + "source_object_type_id", + "origin_object_type_id" + ], + "description": "Identifier for the 'from' object type whose records' association limits are being queried.", + "endpoint_argument_name": "fromObjectTypeId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/limits/associations/records/{fromObjectTypeId}/to", + "tags": [ + "Limits" + ], + "summary": "Read record association limits from an object", + "description": "Returns objects for which the from object has records approaching or at association limits", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "fromObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/custom-object-types", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_custom_object_limits", + "description": { + "tagline": "Retrieve limits and usage for HubSpot custom object schemas.", + "detailed": "This tool is used to get the limits and usage data for custom object schemas in HubSpot CRM. It's useful for monitoring and managing custom object types and understanding their current usage." + }, + "return_annotation": "Limits and usage data for custom object schemas.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/limits/custom-object-types", + "tags": [ + "Limits" + ], + "summary": "Read custom object limits", + "description": "Returns limits and usage for custom object schemas", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.custom.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.custom.read", + "crm.schemas.custom.read", + "crm.objects.custom.write", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/custom-properties", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_custom_property_limits", + "description": { + "tagline": "Retrieve limits and usage for custom properties per object.", + "detailed": "Use this tool to access the limits and usage statistics for custom properties categorized by object in HubSpot CRM." + }, + "return_annotation": "Custom property limits and usage per object.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/limits/custom-properties", + "tags": [ + "Limits" + ], + "summary": "Read custom property limits", + "description": "Returns limits and usage per object for custom properties", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/associations/records/from", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_limit_approaching_records", + "description": { + "tagline": "Retrieve objects nearing or at HubSpot CRM association limits.", + "detailed": "This tool is called to get objects from HubSpot CRM that have records close to or at their association limits. It helps in monitoring and managing association constraints." + }, + "return_annotation": "Objects approaching or at association limits.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/limits/associations/records/from", + "tags": [ + "Limits" + ], + "summary": "Read record association limits", + "description": "Returns objects with records approaching or at association limits", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/records", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_crm_limits_records", + "description": { + "tagline": "Retrieve limits and usage for records in HubSpot CRM.", + "detailed": "Use this tool to obtain detailed information about the limits and current usage of various objects within the HubSpot CRM records." + }, + "return_annotation": "Limits and usage per object for records in HubSpot CRM.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/limits/records", + "tags": [ + "Limits" + ], + "summary": "Read record limits", + "description": "Returns limits and usage per object for records", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/pipelines", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "pipeline_limits_usage", + "description": { + "tagline": "Retrieve limits and usage for HubSpot CRM pipelines.", + "detailed": "Call this tool to obtain information about the limits and current usage of pipelines in HubSpot CRM. Useful for understanding capacity and utilization of your CRM pipelines." + }, + "return_annotation": "Limits and usage data for CRM pipelines.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/limits/pipelines", + "tags": [ + "Limits" + ], + "summary": "Read pipeline limits", + "description": "Returns limits and usage per object for pipelines", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/limits/calculated-properties", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_calculated_properties_limits", + "description": { + "tagline": "Get limits and usage for calculated properties in HubSpot CRM.", + "detailed": "Call this tool to retrieve overall limits and per object usage for calculated properties in HubSpot CRM." + }, + "return_annotation": "Overall limit and usage details for calculated properties per object.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/limits/calculated-properties", + "tags": [ + "Limits" + ], + "summary": "Read calculation property limits", + "description": "Returns overall limit and per object usage for calculated properties", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/line_items_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_line_items_page", + "description": { + "tagline": "Retrieve a page of line items from HubSpot CRM.", + "detailed": "Use this tool to read a specific page of line items from HubSpot CRM. You can control the details returned using the `properties` query parameter to tailor the response to your needs." + }, + "return_annotation": "A page of line items with specified properties.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit", + "page_size" + ], + "description": "Sets the maximum number of line items to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "pagination_cursor_after", + "alternative_names": [ + "page_cursor_token", + "pagination_token" + ], + "description": "The cursor token from the last page to retrieve the next set of results.", + "endpoint_argument_name": "after" + }, + { + "name": "include_properties", + "alternative_names": [ + "properties_list", + "response_properties" + ], + "description": "List the properties to include in the response, separated by commas. Ignored if not present.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_past_values", + "historical_properties" + ], + "description": "A list of property names to return with their value history. This reduces the max line items per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "List of object types to retrieve associated IDs. Nonexistent associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "only_archived", + "fetch_only_archived" + ], + "description": "Set to true to return only archived results. False returns non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/line_items", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of line items. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of line items that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of line items that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_line_item", + "description": { + "tagline": "Create a new line item in HubSpot CRM.", + "detailed": "This tool creates a line item in HubSpot CRM with specified properties and returns the complete object, including its ID. Use this when you need to add a line item to HubSpot." + }, + "return_annotation": "Returns the created line item object with its ID.", + "arguments": [ + { + "name": "line_item_details", + "alternative_names": [ + "line_item_data", + "item_properties" + ], + "description": "JSON object containing key-value pairs for properties and associations to define a new line item in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a line item with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard line items is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/line_items/{lineItemId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_line_item_details", + "description": { + "tagline": "Retrieve details of a line item by its ID.", + "detailed": "This tool fetches details of a specific line item from HubSpot CRM using its internal ID or any unique property value. Use this tool to access information about a particular line item, specifying any desired properties to control the response." + }, + "return_annotation": "Details of a specific line item in HubSpot CRM.", + "arguments": [ + { + "name": "line_item_id", + "alternative_names": [ + "line_item_identifier", + "unique_line_item_id" + ], + "description": "The unique ID or property value of the line item to retrieve. This identifies the specific line item in HubSpot CRM.", + "endpoint_argument_name": "lineItemId" + }, + { + "name": "return_properties", + "alternative_names": [ + "specified_properties", + "desired_properties" + ], + "description": "Comma-separated list of properties to return. Ignored if not present on the object.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historic_properties", + "properties_with_past_values" + ], + "description": "A list of properties to return with their value history. Ignored if not present on the object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "object_associations", + "related_entities" + ], + "description": "Comma separated list of object types to retrieve associated IDs for. Non-existent associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_identifier_property", + "alternative_names": [ + "unique_property_name", + "identifier_property" + ], + "description": "Specifies a unique property name to identify the line item in HubSpot CRM.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_return_archived", + "alternative_names": [ + "archived_only", + "only_show_archived" + ], + "description": "Set to True to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/line_items/{lineItemId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{lineItemId}`. `{lineItemId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "lineItemId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/line_items/{lineItemId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_line_item", + "description": { + "tagline": "Moves a specified line item to the recycling bin.", + "detailed": "This tool is used to delete or archive a line item in HubSpot CRM by moving it to the recycling bin. It should be called when a user wants to remove a line item identified by its `lineItemId`." + }, + "return_annotation": "Confirmation of line item deletion or archival.", + "arguments": [ + { + "name": "line_item_id", + "alternative_names": [ + "line_item_identifier", + "item_id" + ], + "description": "The unique identifier of the line item to be archived or deleted.", + "endpoint_argument_name": "lineItemId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/line_items/{lineItemId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{lineItemId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "lineItemId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/line_items/{lineItemId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_line_item", + "description": { + "tagline": "Update properties of a CRM line item using its ID.", + "detailed": "Use this tool to perform a partial update of a CRM line item identified by its internal ID or a unique property value. Only provided properties will be updated, and passing an empty string can clear property values. Make sure not to include read-only or non-existent properties as they will result in errors." + }, + "return_annotation": "Information about the updated line item.", + "arguments": [ + { + "name": "line_item_id", + "alternative_names": [ + "item_id", + "line_id" + ], + "description": "The internal ID of the line item to update. This ID identifies the object to be modified.", + "endpoint_argument_name": "lineItemId" + }, + { + "name": "line_item_properties", + "alternative_names": [ + "update_properties", + "edit_properties" + ], + "description": "JSON object with key-value pairs representing the properties to update for the line item. Pass an empty string to clear a property value. Avoid read-only or non-existent properties.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "id_property_name", + "unique_field_name" + ], + "description": "Specify a property with unique values to identify the line item instead of using the internal ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/line_items/{lineItemId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{lineItemId}`or optionally a unique property value as specified by the `idProperty` query param. `{lineItemId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "lineItemId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_line_items_batch", + "description": { + "tagline": "Batch create or update line items by unique ID.", + "detailed": "This tool creates or updates line item records in batches using a unique property to identify each item, as specified by the `idProperty` query parameter." + }, + "return_annotation": "Status and details of the upsert operation.", + "arguments": [ + { + "name": "line_items_data", + "alternative_names": [ + "line_items_payload", + "batch_data" + ], + "description": "A JSON array of objects containing details for each line item. Each object includes 'idProperty', 'objectWriteTraceId', 'id', and 'properties' with key-value pairs representing item properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of line items by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_line_items_batch", + "description": { + "tagline": "Create a batch of line items in HubSpot CRM.", + "detailed": "Use this tool to create multiple line items at once in HubSpot CRM. Ideal for bulk operations where several line items need to be added simultaneously to the system." + }, + "return_annotation": "Batch creation result for line items.", + "arguments": [ + { + "name": "line_items_batch_data", + "alternative_names": [ + "batch_data_input", + "line_items_creation_data" + ], + "description": "JSON data for creating multiple line items. Includes properties and associations for each item.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of line items", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_line_items_batch", + "description": { + "tagline": "Update multiple line items in CRM using internal IDs or unique properties.", + "detailed": "This tool updates a batch of line items in HubSpot CRM. It's useful when needing to modify multiple line items at once using their internal IDs or unique property values." + }, + "return_annotation": "Confirmation of batch line item updates.", + "arguments": [ + { + "name": "line_items_update_data", + "alternative_names": [ + "line_items_data", + "update_data" + ], + "description": "JSON array containing objects with 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update line items.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of line items by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_line_items", + "description": { + "tagline": "Search for line items in HubSpot CRM.", + "detailed": "Use this tool to search for line items within HubSpot CRM. It should be called when you need to retrieve specific line items based on search criteria." + }, + "return_annotation": "Results of the line items search in HubSpot CRM.", + "arguments": [ + { + "name": "line_items_search_criteria", + "alternative_names": [ + "line_items_query_body", + "line_items_filters" + ], + "description": "JSON object containing search criteria, such as query string, filters, sort orders, and properties to include for line items in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_batch_line_items", + "description": { + "tagline": "Retrieve batch line item records by ID or custom property.", + "detailed": "Use this tool to retrieve multiple line item records from HubSpot CRM using their IDs or a custom unique property. This is helpful for accessing specific sets of records without manually querying each one individually." + }, + "return_annotation": "Batch of line item records by ID or custom property.", + "arguments": [ + { + "name": "batch_request_body", + "alternative_names": [ + "line_items_request_payload", + "line_items_batch_input" + ], + "description": "JSON object with optional `idProperty`, list of `inputs` with `id`, `properties`, and `propertiesWithHistory` to retrieve records.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "retrieve_only_archived", + "alternative_names": [ + "return_archived_only", + "filter_by_archived" + ], + "description": "Set to true to retrieve only archived line items.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of line items by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/line_items/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_line_items_batch", + "description": { + "tagline": "Archive a batch of line items in HubSpot CRM.", + "detailed": "Use this tool to archive multiple line items at once by their IDs within HubSpot CRM. Ideal for managing and organizing CRM data efficiently." + }, + "return_annotation": "Confirmation of batch line items archived successfully.", + "arguments": [ + { + "name": "line_item_ids_to_archive", + "alternative_names": [ + "ids_to_archive", + "archive_ids_list" + ], + "description": "A JSON array of objects, each with an 'id' key specifying the line item ID to archive.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/line_items/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of line items by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-420", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "list_crm_entries", + "description": { + "tagline": "Retrieve a page of CRM listings with specified properties.", + "detailed": "This tool fetches a page of CRM listings from HubSpot, allowing the user to control which properties are returned via query parameters. Use this to obtain customer records and details from the CRM." + }, + "return_annotation": "A page of CRM listings with specified properties.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_per_page", + "page_size" + ], + "description": "The maximum number of CRM listing results to display per page. This controls pagination size.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "continue_from_token" + ], + "description": "The cursor token for fetching the next page of CRM listings.", + "endpoint_argument_name": "after" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "property_list", + "desired_properties" + ], + "description": "Comma-separated list of properties to include in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "include_properties_with_history", + "alternative_names": [ + "fetch_property_history", + "property_history_inclusion" + ], + "description": "List the properties whose values along with their history should be returned. Reduces the number of listings per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for, such as 'contacts' or 'deals'. Ignored if not existent.", + "endpoint_argument_name": "associations" + }, + { + "name": "include_only_archived_results", + "alternative_names": [ + "fetch_exclusively_archived", + "return_exclusively_archived" + ], + "description": "Set to true to return only archived results. False to exclude archived entries.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-420", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of listings. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of listings that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of listings that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_listing", + "description": { + "tagline": "Create a HubSpot CRM listing and get the object details.", + "detailed": "Use this tool to create a listing in HubSpot CRM with specified properties. It returns the newly created object's details, including its ID." + }, + "return_annotation": "Created listing object with details and ID.", + "arguments": [ + { + "name": "listing_properties", + "alternative_names": [ + "hubspot_listing_data", + "crm_listing_info" + ], + "description": "JSON object containing properties for the new listing and optional associations.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a listing with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard listings is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_multiple_listings", + "description": { + "tagline": "Archive multiple listings using their IDs.", + "detailed": "This tool archives multiple listings in HubSpot CRM by providing their IDs. It should be called when you need to bulk archive specific listings efficiently." + }, + "return_annotation": "Confirmation of archived listings.", + "arguments": [ + { + "name": "listings_ids_to_archive", + "alternative_names": [ + "ids_to_batch_archive", + "listing_ids_batch" + ], + "description": "A JSON array of objects, each containing the 'id' key for the listings to be archived.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of listings by ID", + "description": "Archive multiple listings by their IDs.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_multiple_crm_listings", + "description": { + "tagline": "Update multiple CRM listings using internal IDs or unique properties.", + "detailed": "This tool updates multiple listings in the CRM using their internal IDs or unique property values. It should be called when there is a need to modify several records in bulk within the CRM system." + }, + "return_annotation": "Status of the batch update operation.", + "arguments": [ + { + "name": "crm_batch_update_payload", + "alternative_names": [ + "batch_update_request_body", + "multiple_crm_update_data" + ], + "description": "JSON payload containing an array of objects with unique identifiers and properties for batch updates. Each object should include 'id' or 'idProperty', 'objectWriteTraceId', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of listings by internal ID, or unique property values", + "description": "Update multiple listings using their internal IDs or unique property values.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_hubspot_records", + "description": { + "tagline": "Retrieve HubSpot CRM records by ID or custom property.", + "detailed": "This tool retrieves records from HubSpot CRM using either a record ID or a custom unique value property. It should be called when you need to access specific CRM records based on these identifiers." + }, + "return_annotation": "Batch of HubSpot CRM records based on given criteria.", + "arguments": [ + { + "name": "retrieve_records_request_body", + "alternative_names": [ + "records_retrieval_payload", + "hubspot_records_query" + ], + "description": "JSON object for specifying record retrieval by ID, custom property, and desired properties. Includes 'idProperty' to use a custom unique property, 'inputs' for record IDs, 'properties' for desired record properties, and 'propertiesWithHistory' if history is required.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_records_only", + "alternative_names": [ + "archived_records_only", + "include_only_archived" + ], + "description": "Set to true to return only HubSpot CRM records that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of listings by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_multiple_listings", + "description": { + "tagline": "Create multiple listings in a single request.", + "detailed": "Use this tool to add several listings to the CRM in one operation. Ideal for bulk uploads or extensive data entry tasks." + }, + "return_annotation": "Confirmation of creation for multiple listings.", + "arguments": [ + { + "name": "listings_data", + "alternative_names": [ + "listings_payload", + "listings_input" + ], + "description": "JSON array containing data for each listing to be created. Each entry should include details like 'associations', 'objectWriteTraceId', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of listings", + "description": "Create multiple listings in a single request.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_or_update_batch_records", + "description": { + "tagline": "Create or update CRM records in batches.", + "detailed": "Use this tool to create or update records in the CRM identified by a unique property value. It allows handling multiple records in a single batch operation, specified by the `idProperty`." + }, + "return_annotation": "Details of created or updated CRM records.", + "arguments": [ + { + "name": "batch_records", + "alternative_names": [ + "crm_batch_data", + "bulk_record_entries" + ], + "description": "A JSON array containing objects with unique identifiers (idProperty, id) and their properties. Used for batch creation or update in the CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of listings by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-420/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_listings", + "description": { + "tagline": "Search listings in HubSpot CRM using filters and properties.", + "detailed": "Use this tool to execute a search query in HubSpot CRM to find listings. You can specify various filters and properties to refine your search results." + }, + "return_annotation": "Search results for listings based on filters and properties.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "query_parameters", + "listing_filters" + ], + "description": "JSON object defining search filters, properties, sorting, and pagination for HubSpot listings.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-420/search", + "tags": [ + "Search" + ], + "summary": "Search for listings using various criteria and filters.", + "description": "Execute a search query to find listings based on specified filters and properties.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-420/{listingId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_listing_details", + "description": { + "tagline": "Retrieve details of a listing by its ID.", + "detailed": "Retrieve information about a listing in HubSpot CRM using a unique listing ID or any specified unique property. Allows control of returned details via query parameters." + }, + "return_annotation": "Details of the listing identified by the given ID.", + "arguments": [ + { + "name": "unique_listing_id", + "alternative_names": [ + "listing_unique_id", + "listing_identifier" + ], + "description": "The unique identifier for the listing to be retrieved in HubSpot CRM.", + "endpoint_argument_name": "listingId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "returned_properties_list", + "properties_list" + ], + "description": "A list of properties to be included in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_past_values", + "properties_with_change_log" + ], + "description": "An array of property names to return along with their historical values.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "alternative_names": [ + "get_association_types", + "fetch_related_object_ids" + ], + "description": "List of object types to retrieve associated IDs for. Comma separated. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "distinct_property_name" + ], + "description": "The name of a property with unique values to identify the object in HubSpot CRM.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "show_archived_only", + "include_archived_exclusively" + ], + "description": "Set to true to return only archived results. Use false to include non-archived as well.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-420/{listingId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{listingId}`. `{listingId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listingId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be retrieved." + }, + "description": "The unique identifier of the listing to be retrieved.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/0-420/{listingId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "move_listing_to_recycle_bin", + "description": { + "tagline": "Move a listing to the recycling bin by ID.", + "detailed": "Use this tool to move a specific listing identified by its ID to the recycling bin in HubSpot CRM." + }, + "return_annotation": "Confirmation that the listing has been moved to the recycling bin.", + "arguments": [ + { + "name": "listing_id", + "alternative_names": [ + "listing_identifier", + "id_of_listing" + ], + "description": "The unique identifier of the listing to be moved to the recycling bin in HubSpot CRM.", + "endpoint_argument_name": "listingId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/0-420/{listingId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{listingId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listingId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be archived." + }, + "description": "The unique identifier of the listing to be archived.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/0-420/{listingId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "hubspot_update_listing", + "description": { + "tagline": "Update specific details of a HubSpot listing.", + "detailed": "This tool performs a partial update of a HubSpot listing identified by `listingId` or a unique property specified by `idProperty`. It overwrites provided property values, with errors for read-only or non-existent properties. Clear values by passing an empty string." + }, + "return_annotation": "Confirmation of the updated listing details.", + "arguments": [ + { + "name": "listing_id", + "alternative_names": [ + "listing_identifier", + "object_id" + ], + "description": "The unique identifier of the listing to update in HubSpot.", + "endpoint_argument_name": "listingId" + }, + { + "name": "listing_update_properties", + "alternative_names": [ + "update_fields", + "listing_fields_to_update" + ], + "description": "JSON object of key-value pairs representing properties of the listing to update. Clear values by passing an empty string.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_property_identifier", + "unique_id_property" + ], + "description": "The name of a unique property for this object, used for identification.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/0-420/{listingId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{listingId}`or optionally a unique property value as specified by the `idProperty` query param. `{listingId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.listings.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listingId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be updated." + }, + "description": "The unique identifier of the listing to be updated.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/{listId}/update-list-name_updateName", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_list_name", + "description": { + "tagline": "Update the name of a CRM list in HubSpot.", + "detailed": "Call this tool to update the name of a CRM list in HubSpot, ensuring the new name is globally unique." + }, + "return_annotation": "Confirmation of updated list name.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "list_unique_id" + ], + "description": "The unique ILS ID of the list to update.", + "endpoint_argument_name": "listId" + }, + { + "name": "new_list_name", + "alternative_names": [ + "updated_list_name", + "list_name_to_update" + ], + "description": "The new name for the CRM list. It must be globally unique relative to other public lists.", + "endpoint_argument_name": "listName" + }, + { + "name": "include_filter_branch_definition", + "alternative_names": [ + "include_filter_definition", + "show_filter_branch" + ], + "description": "Set to true to include filter branch definitions in the response list definition, or false to exclude them.", + "endpoint_argument_name": "includeFilters" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/update-list-name", + "tags": [ + "Lists" + ], + "summary": "Update List Name", + "description": "Update the name of a list. The name must be globally unique relative to all other public lists in the portal.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "listName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name to update the list to." + }, + "description": "The name to update the list to.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "includeFilters", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to update." + }, + "description": "The **ILS ID** of the list to update.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/{listId}/memberships/add-and-remove_addAndRemove", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_list_memberships", + "description": { + "tagline": "Add or remove records from a manual or snapshot list.", + "detailed": "This tool is used to add and/or remove records from a manual or snapshot list in the HubSpot CRM. It facilitates managing list memberships by updating existing records according to specified changes." + }, + "return_annotation": "Confirmation of membership updates to a list.", + "arguments": [ + { + "name": "list_identifier", + "alternative_names": [ + "manual_snapshot_list_id", + "list_ils_id" + ], + "description": "The unique ILS ID of the MANUAL or SNAPSHOT list to update.", + "endpoint_argument_name": "listId" + }, + { + "name": "record_ids_to_remove", + "alternative_names": [ + "remove_record_ids", + "records_to_remove" + ], + "description": "An array of record IDs to remove from the list. Each ID should be a string.", + "endpoint_argument_name": "recordIdsToRemove" + }, + { + "name": "record_ids_to_add", + "alternative_names": [ + "add_record_ids", + "include_record_ids" + ], + "description": "An array of record IDs to be added to the specified list. Ensure these records are already created in the system.", + "endpoint_argument_name": "recordIdsToAdd" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/memberships/add-and-remove", + "tags": [ + "Memberships" + ], + "summary": "Add and/or Remove Records from a List", + "description": "Add and/or remove records that have already been created in the system to and/or from a list.\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "recordIdsToRemove", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": true + }, + { + "name": "recordIdsToAdd", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"description\": \"The IDs of the records to add and/or remove from the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"recordIdsToAdd\",\n \"recordIdsToRemove\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"recordIdsToRemove\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"recordIdsToAdd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"The IDs of the records to add and/or remove from a list.\",\n \"example\": {\n \"recordIdsToAdd\": [\n \"123\",\n \"456\",\n \"789\"\n ],\n \"recordIdsToRemove\": [\n \"654\"\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/crm/v3/lists/{listId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_hubspot_list_by_id", + "description": { + "tagline": "Fetch a single HubSpot CRM list using its ILS list ID.", + "detailed": "" + }, + "return_annotation": "Details of a single HubSpot CRM list.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "ils_list_id", + "hubspot_list_id" + ], + "description": "The ILS ID of the HubSpot CRM list to fetch.", + "endpoint_argument_name": "listId" + }, + { + "name": "include_filter_definitions", + "alternative_names": [ + "include_filters_flag", + "fetch_with_filters" + ], + "description": "Include filter branch definitions in the response. Defaults to false, meaning filter definitions are not included.", + "endpoint_argument_name": "includeFilters" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/{listId}", + "tags": [ + "Lists" + ], + "summary": "Fetch List by ID", + "description": "Fetch a single list by **ILS list ID**.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "includeFilters", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to fetch." + }, + "description": "The **ILS ID** of the list to fetch.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/lists/{listId}_remove", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_list", + "description": { + "tagline": "Delete a specified CRM list by its ID.", + "detailed": "Use this tool to delete a CRM list using its ID. Deleted lists can be restored within 90 days, after which they'll be permanently removed." + }, + "return_annotation": "Confirmation of list deletion with possible restoration details.", + "arguments": [ + { + "name": "list_id_to_delete", + "alternative_names": [ + "list_identifier", + "list_deletion_id" + ], + "description": "The ILS ID of the CRM list to delete. Ensure the ID is correct to avoid unintentional deletion.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/lists/{listId}", + "tags": [ + "Lists" + ], + "summary": "Delete a List", + "description": "Delete a list by **ILS list ID**. Lists deleted through this endpoint can be restored up to 90-days following the delete. After 90-days, the list is purged and can no longer be restored.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to delete." + }, + "description": "The **ILS ID** of the list to delete.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/{listId}/schedule-conversion", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_conversion_details", + "description": { + "tagline": "Retrieve conversion details for a specific list in HubSpot CRM.", + "detailed": "Use this tool to check for upcoming conversions or to get details of past conversions for a list." + }, + "return_annotation": "Conversion details for a specific list.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "list_code" + ], + "description": "The ID of the list for which you want to retrieve conversion details.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/{listId}/schedule-conversion", + "tags": [ + "Lists" + ], + "summary": "Retrieve the conversion details for a list", + "description": "Retrieve the conversion details for a list. This can be used to check for an upcoming conversion, or to get the details of when a list was already converted.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list to schedule the conversion for." + }, + "description": "The ID of the list to schedule the conversion for.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/{listId}/schedule-conversion", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "schedule_list_conversion", + "description": { + "tagline": "Schedule or update the conversion of an active list to static.", + "detailed": "Use this tool to schedule the conversion of an active list into a static list, or to update an already scheduled conversion. This can be scheduled for a specific date or based on activity in HubSpot CRM." + }, + "return_annotation": "Confirmation of the conversion scheduling or update.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "target_list_id" + ], + "description": "The ID of the list you want to schedule the conversion for.", + "endpoint_argument_name": "listId" + }, + { + "name": "conversion_scheduling_details", + "alternative_names": [ + "conversion_details", + "conversion_schedule_data" + ], + "description": "JSON object with details like date or activity-based criteria for scheduling the list conversion.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/schedule-conversion", + "tags": [ + "Lists" + ], + "summary": "Schedule or update the conversion of a list to static", + "description": "Schedule the conversion of an active list into a static list, or update the already scheduled conversion. This can be scheduled for a specific date or based on activity.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list to schedule the conversion for." + }, + "description": "The ID of the list to schedule the conversion for.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "CONVERSION_DATE", + "properties": { + "month": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "enum": [ + "CONVERSION_DATE" + ] + }, + "day": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "conversionType", + "day", + "month", + "year" + ] + }, + { + "type": "object", + "title": "INACTIVITY", + "properties": { + "offset": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "enum": [ + "INACTIVITY" + ] + }, + "timeUnit": { + "type": "string", + "enum": [ + "DAY", + "WEEK", + "MONTH" + ] + } + }, + "required": [ + "conversionType", + "offset", + "timeUnit" + ] + } + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"properties\": {},\n \"oneOf\": [\n {\n \"title\": \"CONVERSION_DATE\",\n \"required\": [\n \"conversionType\",\n \"day\",\n \"month\",\n \"year\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"month\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"year\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"conversionType\": {\n \"type\": \"string\",\n \"default\": \"CONVERSION_DATE\",\n \"enum\": [\n \"CONVERSION_DATE\"\n ]\n },\n \"day\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n },\n {\n \"title\": \"INACTIVITY\",\n \"required\": [\n \"conversionType\",\n \"offset\",\n \"timeUnit\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"offset\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"conversionType\": {\n \"type\": \"string\",\n \"default\": \"INACTIVITY\",\n \"enum\": [\n \"INACTIVITY\"\n ]\n },\n \"timeUnit\": {\n \"type\": \"string\",\n \"enum\": [\n \"DAY\",\n \"WEEK\",\n \"MONTH\"\n ]\n }\n }\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/lists/{listId}/schedule-conversion", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_scheduled_conversion", + "description": { + "tagline": "Delete a scheduled conversion for a specific list.", + "detailed": "This tool deletes an existing scheduled conversion for a specified list in the HubSpot CRM. It should be called when you need to cancel a conversion schedule, and it returns a confirmation of the deletion." + }, + "return_annotation": "Confirmation of the scheduled conversion deletion.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "conversion_list_id" + ], + "description": "The ID of the list for which you want to cancel the scheduled conversion.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/lists/{listId}/schedule-conversion", + "tags": [ + "Lists" + ], + "summary": "Cancel the conversion of a list", + "description": "Delete an existing scheduled conversion for a list.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list that you want to cancel the conversion for." + }, + "description": "The ID of the list that you want to cancel the conversion for.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/lists/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_lists", + "description": { + "tagline": "Search HubSpot CRM lists by name or page through all lists.", + "detailed": "This tool allows searching for specific lists within the HubSpot CRM by list name. Alternatively, you can page through all lists by providing an empty query. It's useful for retrieving specific list data or browsing all available lists." + }, + "return_annotation": "A list of search results matching the query.", + "arguments": [ + { + "name": "filter_by_list_ids", + "alternative_names": [ + "list_id_filter", + "filter_lists_by_id" + ], + "description": "An array of list IDs to filter search results. If not provided or empty, no filter is applied.", + "endpoint_argument_name": "listIds" + }, + { + "name": "start_offset", + "alternative_names": [ + "page_start_index", + "result_offset" + ], + "description": "The starting point for pagination of list results. Defaults to `0` if not provided.", + "endpoint_argument_name": "offset" + }, + { + "name": "search_query", + "alternative_names": [ + "list_search_term", + "list_name_query" + ], + "description": "The term to search for lists by name. Returns all lists if empty.", + "endpoint_argument_name": "query" + }, + { + "name": "number_of_lists_to_return", + "alternative_names": [ + "lists_count", + "response_list_size" + ], + "description": "The number of lists to include in the response. Defaults to 20 if not provided, with a maximum of 500.", + "endpoint_argument_name": "count" + }, + { + "name": "filter_by_processing_types", + "alternative_names": [ + "limit_to_processing_types", + "select_processing_types" + ], + "description": "List of processing types to filter results. Valid values: 'MANUAL', 'SNAPSHOT', 'DYNAMIC'. If omitted, no filtering by processing type is applied.", + "endpoint_argument_name": "processingTypes" + }, + { + "name": "include_additional_list_properties", + "alternative_names": [ + "extra_list_properties", + "optional_list_fields" + ], + "description": "Specify additional list properties to include in the response. Defaults fetch standard properties like `hs_list_size` and others.", + "endpoint_argument_name": "additionalProperties" + }, + { + "name": "sort_order", + "alternative_names": [ + "ordering", + "sort_direction" + ], + "description": "Specify the order in which the lists should be sorted. Acceptable values could be 'asc' for ascending or 'desc' for descending order.", + "endpoint_argument_name": "sort" + } + ] + }, + "method": "POST", + "path": "/crm/v3/lists/search", + "tags": [ + "Lists" + ], + "summary": "Search Lists", + "description": "Search lists by list name or page through all lists by providing an empty `query` value.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "listIds", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`." + }, + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "offset", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided." + }, + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "query", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists." + }, + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists." + }, + "schema_required": false + }, + { + "name": "count", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`." + }, + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "processingTypes", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`." + }, + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "additionalProperties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`." + }, + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "sort", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"The IDs of the records to add and/or remove from the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"listIds\": {\n \"type\": \"array\",\n \"description\": \"The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\\n\\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"offset\": {\n \"type\": \"integer\",\n \"description\": \"Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.\",\n \"format\": \"int32\"\n },\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists.\"\n },\n \"count\": {\n \"type\": \"integer\",\n \"description\": \"The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.\",\n \"format\": \"int32\"\n },\n \"processingTypes\": {\n \"type\": \"array\",\n \"description\": \"The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\\n\\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\\n\\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"description\": \"The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\\n\\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sort\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"The request object used for searching through lists.\",\n \"example\": {\n \"additionalProperties\": [\n \"hs_list_size_week_delta\"\n ],\n \"count\": 100,\n \"offset\": 0,\n \"query\": \"Test\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "put-/crm/v3/lists/folders/move-list_moveList", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "move_list_to_folder", + "description": { + "tagline": "Move a CRM list to a specified folder.", + "detailed": "Use this tool to move a specific list within HubSpot CRM to a desired folder, organizing lists efficiently." + }, + "return_annotation": "Confirmation of list moved to specified folder.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "list_id_number" + ], + "description": "The ID of the list you want to move. It should be a valid string representing the list in HubSpot CRM.", + "endpoint_argument_name": "listId" + }, + { + "name": "target_folder_id", + "alternative_names": [ + "destination_folder_id", + "folder_id_to_move" + ], + "description": "The ID of the folder to move the list to. Use '0' for the root folder.", + "endpoint_argument_name": "newFolderId" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/folders/move-list", + "tags": [ + "Folders" + ], + "summary": "Moves a list to a given folder", + "description": "Given a list and a folder, the list will be moved to that folder.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of the list to move." + }, + "description": "The Id of the list to move.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The Id of the list to move." + }, + "schema_required": true + }, + { + "name": "newFolderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of folder to move the list to, the root folder is Id 0." + }, + "description": "The Id of folder to move the list to, the root folder is Id 0.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The Id of folder to move the list to, the root folder is Id 0." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"listId\",\n \"newFolderId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"listId\": {\n \"type\": \"string\",\n \"description\": \"The Id of the list to move.\"\n },\n \"newFolderId\": {\n \"type\": \"string\",\n \"description\": \"The Id of folder to move the list to, the root folder is Id 0.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "put-/crm/v3/lists/{listId}/memberships/add_add", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "add_to_hubspot_crm_list", + "description": { + "tagline": "Add records to a specified HubSpot CRM list.", + "detailed": "Use this tool to add records to a specific HubSpot CRM list. Only works for lists with a processing type of MANUAL or SNAPSHOT. Records that don't exist or are already members will be ignored." + }, + "return_annotation": "Confirmation of records added to a HubSpot CRM list.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "ils_id", + "crm_list_id" + ], + "description": "The ILS ID of the MANUAL or SNAPSHOT list to add records.", + "endpoint_argument_name": "listId" + }, + { + "name": "record_ids_to_add", + "alternative_names": [ + "records_to_add_ids", + "list_members_ids" + ], + "description": "An array of strings representing the IDs of the records to add to the list.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/memberships/add", + "tags": [ + "Memberships" + ], + "summary": "Add Records to a List", + "description": "Add the records provided to the list. Records that do not exist or that are already members of the list are ignored.\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The IDs of the records to add to the list." + }, + "description": "The IDs of the records to add to the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"The IDs of the records to add to the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}_getByName", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_list_by_name", + "description": { + "tagline": "Fetch details of a list by its name and object type.", + "detailed": "Use this tool to obtain the information of a specific list in HubSpot CRM by providing the list name and object type ID." + }, + "return_annotation": "Details of a specific list by name and object type.", + "arguments": [ + { + "name": "list_name", + "alternative_names": [ + "list_title", + "name_of_list" + ], + "description": "The name of the list to fetch. This is not case sensitive.", + "endpoint_argument_name": "listName" + }, + { + "name": "object_type_id", + "alternative_names": [ + "object_type_identifier", + "object_id" + ], + "description": "The object type ID for the list. Example: `0-1` for `CONTACT`.", + "endpoint_argument_name": "objectTypeId" + }, + { + "name": "include_filters", + "alternative_names": [ + "filters_included_response", + "include_filters_flag" + ], + "description": "Set to true to include filter branch definitions in the response. By default, filters are not included.", + "endpoint_argument_name": "includeFilters" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}", + "tags": [ + "Lists" + ], + "summary": "Fetch List by Name", + "description": "Fetch a single list by list name and object type.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "includeFilters", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the list to fetch. This is **not** case sensitive." + }, + "description": "The name of the list to fetch. This is **not** case sensitive.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "objectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The object type ID of the object types stored by the list to fetch. For example, `0-1` for a `CONTACT` list." + }, + "description": "The object type ID of the object types stored by the list to fetch. For example, `0-1` for a `CONTACT` list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}_move", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "move_folder_in_hubspot", + "description": { + "tagline": "Move a folder to a new parent in HubSpot CRM.", + "detailed": "This tool moves a folder to a new parent location in HubSpot CRM, updating the folder's parent ID to the specified new ID. Use this when you need to reorganize folder structures within the CRM." + }, + "return_annotation": "Confirmation of folder relocation in HubSpot CRM.", + "arguments": [ + { + "name": "folder_id_to_move", + "alternative_names": [ + "source_folder_id", + "original_folder_id" + ], + "description": "The ID of the folder you want to move to a new location in HubSpot CRM.", + "endpoint_argument_name": "folderId" + }, + { + "name": "target_parent_folder_id", + "alternative_names": [ + "new_parent_folder_id", + "destination_folder_id" + ], + "description": "The ID of the target parent folder to which the current folder will be moved.", + "endpoint_argument_name": "newParentFolderId" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}", + "tags": [ + "Folders" + ], + "summary": "Moves a folder", + "description": "This moves the folder from its current location to a new location. It updates the parent of this folder to the new Id given.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "folderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to move" + }, + "description": "The ID of the folder to move", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "newParentFolderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID for the target parent folder." + }, + "description": "The ID for the target parent folder.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/idmapping_translateLegacyListIdToListId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "translate_legacy_to_new_list_id", + "description": { + "tagline": "Translate legacy list ID to the new list ID format.", + "detailed": "This tool translates a legacy list ID to the new list ID format using HubSpot CRM's temporary API. It is useful for mapping old list IDs to new ones before the API expires on May 30th, 2025." + }, + "return_annotation": "Translated list ID from legacy to new format.", + "arguments": [ + { + "name": "legacy_list_id", + "alternative_names": [ + "old_list_id", + "v1_list_id" + ], + "description": "The legacy list ID from the lists v1 API to be translated to the new format.", + "endpoint_argument_name": "legacyListId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/idmapping", + "tags": [ + "Mapping" + ], + "summary": "Translate Legacy List Id to Modern List Id", + "description": "This API allows translation of legacy list id to list id. This is a temporary API allowed for mapping old id's to new id's and will expire on May 30th, 2025.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "legacyListId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The legacy list id from lists v1 API." + }, + "description": "The legacy list id from lists v1 API.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/lists/idmapping_translateLegacyListIdToListIdBatch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "translate_legacy_list_ids_batch", + "description": { + "tagline": "Translate legacy list IDs to new list IDs in batch.", + "detailed": "Use this tool to convert a large number (up to 10,000) of legacy list IDs to the current list ID format. This tool is essential for data migration purposes and is available until May 30th, 2025." + }, + "return_annotation": "Maps old legacy list IDs to new list IDs.", + "arguments": [ + { + "name": "legacy_list_ids", + "alternative_names": [ + "old_list_ids", + "list_ids_to_translate" + ], + "description": "An array of legacy list IDs to be translated to new IDs, supporting up to 10,000 strings.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/lists/idmapping", + "tags": [ + "Mapping" + ], + "summary": "Translate Legacy List Id to Modern List Id in Batch", + "description": "This API allows translation of a batch of legacy list id's to list id's. This allows for a maximum of 10,000 id's. This is a temporary API allowed for mapping old id's to new id's and will expire on May 30th, 2025.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/{listId}/restore_restore", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "restore_deleted_list", + "description": { + "tagline": "Restore a previously deleted HubSpot CRM list.", + "detailed": "This tool restores a previously deleted list in HubSpot CRM using the list ID. Lists can be restored up to 90 days after deletion. Use this when you need to recover a list that was mistakenly deleted." + }, + "return_annotation": "Confirmation of list restoration or error information.", + "arguments": [ + { + "name": "list_id_to_restore", + "alternative_names": [ + "ils_list_id", + "list_identifier" + ], + "description": "The ILS ID of the list to restore. Use this to specify which deleted list to recover.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/restore", + "tags": [ + "Lists" + ], + "summary": "Restore a List", + "description": "Restore a previously deleted list by **ILS list ID**. Deleted lists are eligible to be restored up-to 90-days after the list has been deleted.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to restore." + }, + "description": "The **ILS ID** of the list to restore.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/folders/{folderId}/rename_rename", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "rename_crm_folder", + "description": { + "tagline": "Rename a folder in HubSpot CRM by its folder ID.", + "detailed": "Use this tool to rename a specific folder in HubSpot CRM using its folder ID. Useful for organizing or updating folder names within your CRM system." + }, + "return_annotation": "Confirmation of the folder renaming operation.", + "arguments": [ + { + "name": "folder_id", + "alternative_names": [ + "folder_identifier", + "id_of_folder" + ], + "description": "The ID of the folder you want to rename in HubSpot CRM.", + "endpoint_argument_name": "folderId" + }, + { + "name": "new_folder_name", + "alternative_names": [ + "folder_new_name", + "updated_folder_name" + ], + "description": "The new name to assign to the folder. It should be a string representing the desired folder name in HubSpot CRM.", + "endpoint_argument_name": "newFolderName" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/folders/{folderId}/rename", + "tags": [ + "Folders" + ], + "summary": "Rename a folder", + "description": "Renames the given folderId with a new name.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "newFolderName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new name of the folder." + }, + "description": "The new name of the folder.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "folderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to rename" + }, + "description": "The ID of the folder to rename", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/{listId}/memberships/join-order_getPageOrderedByAddedToListDate", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_list_memberships_ordered", + "description": { + "tagline": "Fetch list memberships ordered by addition date.", + "detailed": "Fetch the memberships of a HubSpot CRM list, ordered by the date they were added. Useful for retrieving member records in an ascending order based on addition time, or in descending order if a 'before' offset is used." + }, + "return_annotation": "Ordered list of memberships including record IDs and addition dates.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "ils_list_id" + ], + "description": "The unique ILS ID of the list to retrieve memberships from.", + "endpoint_argument_name": "listId" + }, + { + "name": "after_paging_offset_token", + "alternative_names": [ + "next_page_offset_token", + "after_offset_token" + ], + "description": "The token for the page that comes after the previously requested records, sorted in ascending order. Takes precedence over 'before'.", + "endpoint_argument_name": "after" + }, + { + "name": "before_offset_token", + "alternative_names": [ + "preceding_paging_token", + "descending_offset_token" + ], + "description": "The paging offset token to retrieve records preceding the specified page, sorted in descending order.", + "endpoint_argument_name": "before" + }, + { + "name": "record_limit", + "alternative_names": [ + "max_records", + "response_record_count" + ], + "description": "Specify the number of records to return, with a maximum limit of 250.", + "endpoint_argument_name": "limit" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/{listId}/memberships/join-order", + "tags": [ + "Memberships" + ], + "summary": "Fetch List Memberships Ordered by Added to List Date", + "description": "Fetch the memberships of a list in order sorted by the time the records were added to the list.\n\nThe `recordId`s are sorted in *ascending* order if an `after` offset or no offset is provided. If only a `before` offset is provided, then the records are sorted in *descending* order.\n\nThe `after` offset parameter will take precedence over the `before` offset in a case where both are provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset." + }, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "before", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order." + }, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return in the response. The maximum `limit` is 250." + }, + "description": "The number of records to return in the response. The maximum `limit` is 250.", + "required": false, + "deprecated": false, + "default": 100, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list." + }, + "description": "The **ILS ID** of the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}_addAllFromList", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "add_all_from_source_list_to_destination_list", + "description": { + "tagline": "Add records from a source list to a destination list in HubSpot.", + "detailed": "This tool transfers all records from a specified source list to a destination list in HubSpot CRM, ignoring duplicates. Suitable for destination lists with manual or snapshot processing and source lists with fewer than 100,000 memberships." + }, + "return_annotation": "Confirmation of successful record addition to the destination list.", + "arguments": [ + { + "name": "destination_list_id", + "alternative_names": [ + "target_list_id", + "destination_ils_id" + ], + "description": "The ILS ID of the MANUAL or SNAPSHOT destination list to which the source list records are added.", + "endpoint_argument_name": "listId" + }, + { + "name": "source_list_id", + "alternative_names": [ + "source_list_identifier", + "source_ils_id" + ], + "description": "The ILS ID of the source list from which records are added to the destination list.", + "endpoint_argument_name": "sourceListId" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}", + "tags": [ + "Memberships" + ], + "summary": "Add All Records from a Source List to a Destination List", + "description": "Add all of the records from a *source list* (specified by the `sourceListId`) to a *destination list* (specified by the `listId`). Records that are already members of the *destination list* will be ignored. The *destination* and *source list* IDs must be different. The *destination* and *source lists* must contain records of the same type (e.g. contacts, companies, etc.).\n\nThis endpoint only works for *destination lists* that have a `processingType` of `MANUAL` or `SNAPSHOT`. The *source list* can have any `processingType`.\n\nThis endpoint only supports a `sourceListId` for lists with less than 100,000 memberships.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` *destination list*, which the *source list* records are added to." + }, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` *destination list*, which the *source list* records are added to.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "sourceListId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the *source list* to grab the records from, which are then added to the *destination list*." + }, + "description": "The **ILS ID** of the *source list* to grab the records from, which are then added to the *destination list*.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships_getLists", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_record_list_memberships", + "description": { + "tagline": "Retrieve lists a CRM record is a member of.", + "detailed": "This tool retrieves the lists that a specified CRM record is a member of, helping track its association with different lists." + }, + "return_annotation": "Lists the memberships a CRM record belongs to.", + "arguments": [ + { + "name": "object_type_id", + "alternative_names": [ + "record_object_type_id", + "crm_object_type_id" + ], + "description": "Specify the object type ID of the record to retrieve its list memberships.", + "endpoint_argument_name": "objectTypeId" + }, + { + "name": "record_id", + "alternative_names": [ + "record_id_value", + "crm_record_id" + ], + "description": "The unique identifier of the CRM record whose list memberships you want to retrieve.", + "endpoint_argument_name": "recordId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships", + "tags": [ + "Memberships" + ], + "summary": "Get lists record is member of", + "description": "For given record provide lists this record is member of.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Object type id of the record" + }, + "description": "Object type id of the record", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "recordId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the record" + }, + "description": "Id of the record", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/lists/folders/{folderId}_remove", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_crm_folder", + "description": { + "tagline": "Deletes a specified CRM folder by ID.", + "detailed": "Use this tool to delete a folder in HubSpot CRM by providing the folder ID. It should be called when a specific folder needs to be permanently removed from the CRM system." + }, + "return_annotation": "Confirmation of folder deletion.", + "arguments": [ + { + "name": "folder_id_to_delete", + "alternative_names": [ + "target_folder_id", + "hubspot_folder_id" + ], + "description": "The ID of the folder to be deleted in HubSpot CRM.", + "endpoint_argument_name": "folderId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/lists/folders/{folderId}", + "tags": [ + "Folders" + ], + "summary": "Deletes a folder", + "description": "Deletes the folder with the given Id.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "folderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to delete" + }, + "description": "The ID of the folder to delete", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/folders_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_folders_with_child_nodes", + "description": { + "tagline": "Retrieve folders and include all child folders recursively.", + "detailed": "This tool is used to retrieve a folder from HubSpot CRM and recursively include all child folders via the childNodes attribute, while child lists in these nodes will be empty. Only the retrieved folder will include its child lists." + }, + "return_annotation": "A folder and its recursive child nodes, excluding child lists.", + "arguments": [ + { + "name": "target_folder_id", + "alternative_names": [ + "folder_identifier", + "retrieve_folder_id" + ], + "description": "The ID of the folder to retrieve and include all child nodes recursively from HubSpot CRM.", + "endpoint_argument_name": "folderId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/folders", + "tags": [ + "Folders" + ], + "summary": "Retrieves a folder.", + "description": "Retrieves a folder and recursively includes all folders via the childNodes attribute. The child lists field will be empty in all child nodes. Only the folder retrieved will include the child lists in that folder.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "folderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of the folder to retrieve." + }, + "description": "The Id of the folder to retrieve.", + "required": false, + "deprecated": false, + "default": "0", + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/lists/folders_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_folder_hubspot_crm", + "description": { + "tagline": "Creates a folder in HubSpot CRM with specified details.", + "detailed": "Use this tool to create a new folder in HubSpot CRM by providing the necessary information for the folder you want to create." + }, + "return_annotation": "Confirmation of folder creation in HubSpot CRM.", + "arguments": [ + { + "name": "folder_name", + "alternative_names": [ + "name_of_folder", + "folder_title" + ], + "description": "The name of the folder to be created in HubSpot CRM.", + "endpoint_argument_name": "name" + }, + { + "name": "parent_folder_id", + "alternative_names": [ + "folder_parent_id", + "parent_folder_identifier" + ], + "description": "The ID of the folder where the new folder will be created. Defaults to root folder (ID: 0) if not specified.", + "endpoint_argument_name": "parentFolderId" + } + ] + }, + "method": "POST", + "path": "/crm/v3/lists/folders", + "tags": [ + "Folders" + ], + "summary": "Creates a folder", + "description": "Creates a folder with the given information.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "parentFolderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The folder this should be created in, if not specified will be created in the root folder 0." + }, + "description": "The folder this should be created in, if not specified will be created in the root folder 0.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The folder this should be created in, if not specified will be created in the root folder 0." + }, + "schema_required": false + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the folder to be created." + }, + "description": "The name of the folder to be created.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The name of the folder to be created." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"parentFolderId\": {\n \"type\": \"string\",\n \"description\": \"The folder this should be created in, if not specified will be created in the root folder 0.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the folder to be created.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "put-/crm/v3/lists/{listId}/memberships/remove_remove", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_records_from_list", + "description": { + "tagline": "Remove specified records from a HubSpot CRM list.", + "detailed": "Use this tool to remove records from a HubSpot CRM list with `processingType` of `MANUAL` or `SNAPSHOT`. Records not in the list will be ignored." + }, + "return_annotation": "Confirmation of record removal from the list.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "crm_list_id" + ], + "description": "The ILS ID of the MANUAL or SNAPSHOT list from which records will be removed.", + "endpoint_argument_name": "listId" + }, + { + "name": "record_ids_to_remove", + "alternative_names": [ + "ids_for_removal", + "remove_record_ids" + ], + "description": "List of record IDs to remove from the HubSpot CRM list.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/lists/{listId}/memberships/remove", + "tags": [ + "Memberships" + ], + "summary": "Remove Records from a List", + "description": "Remove the records provided from the list. Records that do not exist or that are not members of the list are ignored.\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The IDs of the records to remove from the list." + }, + "description": "The IDs of the records to remove from the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"The IDs of the records to remove from the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/lists/{listId}/memberships_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_hubspot_list_memberships", + "description": { + "tagline": "Retrieve memberships of a HubSpot list by order of record ID.", + "detailed": "Use this tool to fetch the memberships of a specific list in HubSpot CRM, sorted by `recordId`. The results can be ordered in ascending or descending order based on the presence of an `after` or `before` offset." + }, + "return_annotation": "List of memberships for a specified HubSpot list.", + "arguments": [ + { + "name": "list_identifier", + "alternative_names": [ + "list_ils_id", + "list_id" + ], + "description": "The ILS ID of the HubSpot list to retrieve memberships for.", + "endpoint_argument_name": "listId" + }, + { + "name": "paging_offset_after_token", + "alternative_names": [ + "post_offset_token", + "next_records_offset" + ], + "description": "The paging offset token for the page that comes after the previously requested records. If provided, records will follow this offset, sorted in ascending order. Takes precedence over the before offset.", + "endpoint_argument_name": "after" + }, + { + "name": "before_offset_token", + "alternative_names": [ + "before_paging_token", + "previous_page_token" + ], + "description": "The paging offset token for the page before the previously requested records, used to sort records in descending order.", + "endpoint_argument_name": "before" + }, + { + "name": "number_of_records_to_return", + "alternative_names": [ + "records_limit", + "max_records_to_fetch" + ], + "description": "Defines how many records to retrieve in the response, with a maximum value of 250.", + "endpoint_argument_name": "limit" + } + ] + }, + "method": "GET", + "path": "/crm/v3/lists/{listId}/memberships", + "tags": [ + "Memberships" + ], + "summary": "Fetch List Memberships Ordered by ID", + "description": "Fetch the memberships of a list in order sorted by the `recordId` of the records in the list.\n\nThe `recordId`s are sorted in *ascending* order if an `after` offset or no offset is provided. If only a `before` offset is provided, then the records are sorted in *descending* order.\n\nThe `after` offset parameter will take precedence over the `before` offset in a case where both are provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset." + }, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "before", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order." + }, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return in the response. The maximum `limit` is 250." + }, + "description": "The number of records to return in the response. The maximum `limit` is 250.", + "required": false, + "deprecated": false, + "default": 100, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list." + }, + "description": "The **ILS ID** of the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/lists/{listId}/memberships_removeAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_all_list_memberships", + "description": { + "tagline": "Remove all records from a CRM list without deleting the list.", + "detailed": "Use this tool to remove all memberships from a HubSpot CRM list that has a processing type of MANUAL or SNAPSHOT. Suitable for lists with fewer than 100,000 memberships." + }, + "return_annotation": "Confirmation of membership removal from the list.", + "arguments": [ + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "list_ils_id" + ], + "description": "The ILS ID of a MANUAL or SNAPSHOT list in HubSpot CRM. Required for removing all memberships.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/lists/{listId}/memberships", + "tags": [ + "Memberships" + ], + "summary": "Delete All Records from a List", + "description": "Remove **all** of the records from a list. ***Note:*** *The list is not deleted.*\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.\n\nThis endpoint only supports lists that have less than 100,000 memberships.", + "requires_security": true, + "oauth_scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/meetings/{meetingId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_meeting_details_by_id", + "description": { + "tagline": "Retrieve detailed information about a specific meeting.", + "detailed": "Use this tool to get information about a meeting using its unique ID. You can specify properties to control what details are returned." + }, + "return_annotation": "Details of the specified meeting.", + "arguments": [ + { + "name": "meeting_identifier", + "alternative_names": [ + "meeting_id", + "meeting_key" + ], + "description": "Unique identifier for the meeting you want to retrieve details for.", + "endpoint_argument_name": "meetingId" + }, + { + "name": "return_properties", + "alternative_names": [ + "properties_to_return", + "select_properties" + ], + "description": "A list of properties to be returned in the response. If any specified properties are not present, they will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_history_list", + "historical_properties" + ], + "description": "Comma separated list of properties to return with history of values. Ignored if not present on the object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "alternative_names": [ + "fetch_associated_ids", + "get_associated_object_ids" + ], + "description": "List of object types to fetch associated IDs for. Nonexistent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "object_unique_property" + ], + "description": "The property name whose values uniquely identify the meeting object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_archived", + "alternative_names": [ + "archived_results_only", + "filter_archived_only" + ], + "description": "Set to true to return only archived meeting results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/meetings/{meetingId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{meetingId}`. `{meetingId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "meetingId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/meetings/{meetingId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_meeting", + "description": { + "tagline": "Move a meeting to the recycling bin using its ID.", + "detailed": "This tool is used to move a meeting, identified by its meeting ID, to the recycling bin in the HubSpot CRM. It is useful when you need to archive or remove a meeting from active records." + }, + "return_annotation": "Confirmation that the meeting was moved to the recycling bin.", + "arguments": [ + { + "name": "meeting_id", + "alternative_names": [ + "meeting_identifier", + "meeting_key" + ], + "description": "The unique ID of the meeting to be moved to the recycling bin. This is required to identify the specific meeting.", + "endpoint_argument_name": "meetingId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/meetings/{meetingId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{meetingId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "meetingId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/meetings/{meetingId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_meeting", + "description": { + "tagline": "Update specific properties of a HubSpot meeting.", + "detailed": "Use this tool to perform a partial update on a HubSpot CRM meeting object. Identify the meeting using `{meetingId}` or a unique property with `idProperty`. Overwrite specified property values, but note that read-only or non-existent properties will cause an error. Properties can be cleared by sending an empty string." + }, + "return_annotation": "Acknowledgment of meeting update or error details.", + "arguments": [ + { + "name": "meeting_id", + "alternative_names": [ + "meeting_identifier", + "meeting_internal_id" + ], + "description": "The internal ID of the meeting or a property name with unique values for identification.", + "endpoint_argument_name": "meetingId" + }, + { + "name": "meeting_update_properties", + "alternative_names": [ + "meeting_update_data", + "meeting_properties_changes" + ], + "description": "JSON object with key-value pairs for meeting properties to update. Keys are property names, values are new property values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_name", + "property_identifier" + ], + "description": "The name of the unique property for identifying the meeting.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/meetings/{meetingId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{meetingId}`or optionally a unique property value as specified by the `idProperty` query param. `{meetingId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "meetingId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_meetings_batch", + "description": { + "tagline": "Update a batch of meetings in HubSpot CRM.", + "detailed": "This tool updates multiple meetings in HubSpot CRM using internal IDs or unique property values. It should be called when you need to modify details for several meetings at once." + }, + "return_annotation": "Confirmation of meetings batch update.", + "arguments": [ + { + "name": "meeting_batch_update_payload", + "alternative_names": [ + "meetings_update_data", + "meeting_records_payload" + ], + "description": "JSON array of meeting records to update, including unique IDs and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of meetings by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_meeting_records", + "description": { + "tagline": "Retrieve meeting records by ID or unique property.", + "detailed": "Use this tool to retrieve HubSpot CRM meeting records by specifying record IDs or a custom unique value property. It helps in accessing specific meeting details efficiently." + }, + "return_annotation": "Meeting records retrieved by ID or custom property.", + "arguments": [ + { + "name": "meeting_record_details", + "alternative_names": [ + "record_parameters", + "meeting_request_payload" + ], + "description": "JSON object containing meeting records' details, including properties, history, and ID parameters.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "fetch_archived_records_only", + "get_archived_meetings_only" + ], + "description": "Set to true to retrieve only archived meeting records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of meetings by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_meetings_batch", + "description": { + "tagline": "Archive multiple meetings by IDs in batch.", + "detailed": "Use this tool to archive a batch of meetings by their IDs in HubSpot CRM. It is suitable for managing and cleaning up old or unnecessary meeting data efficiently." + }, + "return_annotation": "Confirmation of archived meetings batch.", + "arguments": [ + { + "name": "meeting_ids_to_archive", + "alternative_names": [ + "ids_for_meetings_archive", + "archive_meetings_ids" + ], + "description": "A JSON array of meeting IDs to archive. Each entry should be a JSON object containing the 'id' of the meeting.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of meetings by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/meetings_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_meetings_page", + "description": { + "tagline": "Retrieve a page of meetings data from HubSpot CRM.", + "detailed": "Use this tool to read a page of meetings from HubSpot CRM. You can specify which properties to return using query parameters." + }, + "return_annotation": "Page of meetings with specified properties.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_page_limit", + "max_items_per_page" + ], + "description": "The maximum number of meeting results to display per page. Specify an integer value.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "page_cursor", + "next_page_token" + ], + "description": "The token indicating the last successfully read resource, used for paging through results.", + "endpoint_argument_name": "after" + }, + { + "name": "properties", + "alternative_names": [ + "return_properties", + "requested_properties" + ], + "description": "A list of property names to return in the response. If any are not present, they will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_including_history" + ], + "description": "List of properties to retrieve with their change history. Reduces max meetings returned per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "alternative_names": [ + "get_associated_object_ids", + "fetch_associated_ids" + ], + "description": "List object types to retrieve associated IDs for; ignored if associations don't exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_results", + "alternative_names": [ + "include_archived", + "archived_results" + ], + "description": "Set to true to return only archived results; false to include active results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/meetings", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of meetings. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of meetings that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of meetings that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_meeting", + "description": { + "tagline": "Create a meeting in HubSpot and get its details.", + "detailed": "This tool is used to create a meeting in HubSpot CRM with specific properties. It returns the details of the created meeting, including the unique ID." + }, + "return_annotation": "Details of the created HubSpot meeting, including its ID.", + "arguments": [ + { + "name": "meeting_properties", + "alternative_names": [ + "meeting_details", + "meeting_info" + ], + "description": "JSON object containing key-value pairs for setting properties of the meeting, including associations and specific properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a meeting with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard meetings is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_meetings", + "description": { + "tagline": "Create or update meeting records in HubSpot CRM.", + "detailed": "Use this tool to create new meetings or update existing ones in HubSpot CRM by specifying a unique identifier for each record." + }, + "return_annotation": "Confirmation of meeting records creation or update.", + "arguments": [ + { + "name": "meeting_records_data", + "alternative_names": [ + "meetings_batch_data", + "meetings_upsert_payload" + ], + "description": "A JSON object containing an array of meeting records to be upserted. Each record must include 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of meetings by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_meetings", + "description": { + "tagline": "Create a batch of meetings in HubSpot CRM.", + "detailed": "Use this tool to efficiently create multiple meetings at once in HubSpot CRM. Ideal for scheduling large numbers of meetings in a single operation." + }, + "return_annotation": "Information about the created meetings batch.", + "arguments": [ + { + "name": "meetings_batch_data", + "alternative_names": [ + "meetings_list", + "meetings_payload" + ], + "description": "A JSON object containing an array of meetings data to be created, including associations, object write trace ID, and properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of meetings", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/meetings/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_meetings", + "description": { + "tagline": "Search for meetings in HubSpot CRM.", + "detailed": "Use this tool to search for meetings stored in the HubSpot CRM. It should be called whenever there is a need to locate meetings based on specific criteria within the HubSpot platform." + }, + "return_annotation": "Search results for HubSpot meetings.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "meeting_search_criteria", + "hubspot_search_filters" + ], + "description": "A JSON object containing search query, limit, paging cursor, sorting options, property selection, and filter groups for HubSpot meetings.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/meetings/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_notes", + "description": { + "tagline": "Search for notes in HubSpot CRM.", + "detailed": "Use this tool to search for specific notes within HubSpot CRM. It should be called when you need to find and retrieve notes based on particular search criteria." + }, + "return_annotation": "HubSpot CRM notes search results.", + "arguments": [ + { + "name": "search_request_body", + "alternative_names": [ + "search_query_parameters", + "hubspot_search_criteria" + ], + "description": "The search criteria for notes in HubSpot. This includes query string, limits, paging, sorting, and filtering details.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/notes_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_notes_page", + "description": { + "tagline": "Retrieve a page of notes from HubSpot CRM.", + "detailed": "Use this tool to read a page of notes from HubSpot CRM. You can control the properties returned via query parameters." + }, + "return_annotation": "A page of notes with specified properties.", + "arguments": [ + { + "name": "results_per_page", + "alternative_names": [ + "max_results_per_page", + "page_limit" + ], + "description": "The maximum number of note results to display per page. Specify an integer value.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "pagination_token", + "cursor_after_token" + ], + "description": "Token for paging to retrieve the next set of notes. Use the token from `paging.next.after` in the previous response.", + "endpoint_argument_name": "after" + }, + { + "name": "returned_properties_list", + "alternative_names": [ + "properties_to_return", + "note_properties" + ], + "description": "List of note properties to include in the response. Specify as an array of strings.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "historical_properties" + ], + "description": "List of properties to return with their historical values. Reduces the maximum number of notes per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "association_types" + ], + "description": "List of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_notes", + "alternative_names": [ + "display_archived_notes_only", + "fetch_archived_notes_exclusively" + ], + "description": "Set to True to return only archived notes; otherwise, non-archived notes are returned.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/notes", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of notes. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of notes that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of notes that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_note_in_hubspot", + "description": { + "tagline": "Create a note in HubSpot CRM and return its details.", + "detailed": "Use this tool to create a note in HubSpot CRM with specified properties. It returns a copy of the created note object, including its ID." + }, + "return_annotation": "A copy of the created note object including its ID.", + "arguments": [ + { + "name": "note_creation_details", + "alternative_names": [ + "note_properties", + "note_parameters" + ], + "description": "JSON object containing key-value pairs for note properties and associations. Includes association details like category and type.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a note with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard notes is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_notes_records", + "description": { + "tagline": "Retrieve notes records by ID or custom property.", + "detailed": "This tool retrieves records from HubSpot CRM using either record IDs or a custom unique value property specified by the `idProperty` parameter." + }, + "return_annotation": "Details of specified notes records.", + "arguments": [ + { + "name": "notes_retrieval_details", + "alternative_names": [ + "records_request_body", + "notes_query_parameters" + ], + "description": "A JSON object specifying the properties to retrieve. Include `idProperty` if using a custom unique identifier, and use `inputs` to specify the records.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_only_archived", + "filter_to_archived" + ], + "description": "Set to true to return only archived records. Use false to include non-archived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of notes by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_notes_hubspot", + "description": { + "tagline": "Create or update notes in HubSpot CRM by unique property.", + "detailed": "This tool is used to create or update multiple notes in HubSpot CRM in a single request. It identifies records using a unique property value specified by the `idProperty` query parameter." + }, + "return_annotation": "Confirmation of notes upsertion in HubSpot CRM.", + "arguments": [ + { + "name": "notes_data", + "alternative_names": [ + "upsert_note_entries", + "notes_batch" + ], + "description": "JSON array containing note objects with unique identifiers and properties for upsert. Each object must include 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of notes by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_notes_batch", + "description": { + "tagline": "Archive a batch of notes by their IDs.", + "detailed": "Use this tool to archive multiple notes in HubSpot CRM by providing their IDs. Ideal for managing large numbers of notes that need to be archived simultaneously." + }, + "return_annotation": "Confirmation of notes batch archive operation.", + "arguments": [ + { + "name": "note_ids_batch", + "alternative_names": [ + "batch_note_ids", + "note_ids_for_archive" + ], + "description": "A JSON array of note IDs to be archived. Each ID should be a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of notes by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_update_notes", + "description": { + "tagline": "Update multiple notes in HubSpot CRM by ID or property.", + "detailed": "Use this tool to update a batch of notes in HubSpot CRM by their internal IDs or unique property values. Ideal for situations where multiple notes need simultaneous modifications." + }, + "return_annotation": "Status and details of notes batch update.", + "arguments": [ + { + "name": "update_notes_payload", + "alternative_names": [ + "notes_update_data", + "batch_notes_payload" + ], + "description": "JSON payload containing an array of objects with 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update multiple notes in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of notes by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/notes/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_notes", + "description": { + "tagline": "Create multiple notes in a CRM batch operation.", + "detailed": "Use this tool to create a batch of notes in HubSpot CRM. Ideal for adding multiple notes efficiently in a single operation." + }, + "return_annotation": "Confirmation of batch note creation.", + "arguments": [ + { + "name": "batch_notes_data", + "alternative_names": [ + "notes_batch_content", + "multiple_notes_data" + ], + "description": "JSON structure containing note details. Each note should include associations, objectWriteTraceId, and other properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/notes/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of notes", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/notes/{noteId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_note_details", + "description": { + "tagline": "Retrieve details of a note by its unique ID.", + "detailed": "Use this tool to get details of a note from HubSpot CRM using its unique ID. You can specify additional properties to control the returned data." + }, + "return_annotation": "Details of a specific note by its ID.", + "arguments": [ + { + "name": "note_id", + "alternative_names": [ + "note_identifier", + "note_key" + ], + "description": "The unique identifier of the note to retrieve details for.", + "endpoint_argument_name": "noteId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "property_list", + "select_properties" + ], + "description": "A list of property names to return for the note. Non-existing properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "return_properties_with_history", + "alternative_names": [ + "retrieve_properties_with_history", + "fetch_properties_with_history" + ], + "description": "List properties to return with their history of previous values. Ignored if not present on the object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "connections" + ], + "description": "List the object types to retrieve associated IDs for, separated by commas. Invalid types are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "id_property", + "identifier_property" + ], + "description": "Specify the unique property name to identify the object in HubSpot CRM.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_results_only", + "alternative_names": [ + "filter_archived_notes", + "retrieve_archived_only" + ], + "description": "Set to true to return only archived notes.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/notes/{noteId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{noteId}`. `{noteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "noteId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/notes/{noteId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_note_hubspot", + "description": { + "tagline": "Move a HubSpot note to the recycling bin.", + "detailed": "Use this tool to move a note identified by `noteId` in HubSpot CRM to the recycling bin. This is useful for soft-deleting notes when they are no longer needed in the immediate CRM workspace." + }, + "return_annotation": "Confirmation of note deletion.", + "arguments": [ + { + "name": "note_id", + "alternative_names": [ + "note_identifier", + "note_key" + ], + "description": "The unique identifier of the note to be archived in HubSpot CRM.", + "endpoint_argument_name": "noteId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/notes/{noteId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{noteId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "noteId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/notes/{noteId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_note", + "description": { + "tagline": "Update a HubSpot note with new property values.", + "detailed": "Use this tool to update specific properties of a HubSpot CRM note. Identify the note by its ID or a unique property value and provide new values for properties you wish to change. Read-only and non-existent properties cannot be updated. Clear properties by passing an empty string." + }, + "return_annotation": "Information about the updated HubSpot note.", + "arguments": [ + { + "name": "note_identifier", + "alternative_names": [ + "note_id", + "unique_note_key" + ], + "description": "The ID or unique property value of the note to update. Use `noteId` for internal ID or specify a unique property via `idProperty`.", + "endpoint_argument_name": "noteId" + }, + { + "name": "note_update_properties", + "alternative_names": [ + "note_properties_update", + "update_note_fields" + ], + "description": "JSON object with key-value pairs representing the properties and their new values for a HubSpot note. Pass an empty string to clear a property. Non-existent or read-only properties will cause an error.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_name_for_identification" + ], + "description": "The name of a property with unique values for this object, used to identify the note.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/notes/{noteId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{noteId}`or optionally a unique property value as specified by the `idProperty` query param. `{noteId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "noteId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/object-library/enablement", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_enablement_data", + "description": { + "tagline": "Fetch enablement data from HubSpot CRM.", + "detailed": "Use this tool to obtain enablement information from the HubSpot CRM. It should be called when detailed enablement data is required for CRM-related operations or analyses." + }, + "return_annotation": "Retrieved enablement information from HubSpot CRM.", + "arguments": [] + }, + "method": "GET", + "path": "/crm/v3/object-library/enablement", + "tags": [ + "Enablement" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/object-library/enablement/{objectTypeId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "enable_object_type_in_hubspot", + "description": { + "tagline": "Enable an object type in HubSpot CRM via its ID.", + "detailed": "This tool is used to enable a specific object type in HubSpot's CRM system using the object's unique ID. It should be called when there is a need to activate or verify the activation status of a specific object category in HubSpot." + }, + "return_annotation": "Object type enablement status in HubSpot CRM.", + "arguments": [ + { + "name": "object_type_id", + "alternative_names": [ + "object_type_identifier", + "hubspot_object_id" + ], + "description": "The unique identifier for the object type in HubSpot CRM that needs to be enabled.", + "endpoint_argument_name": "objectTypeId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/object-library/enablement/{objectTypeId}", + "tags": [ + "Enablement" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_order_records", + "description": { + "tagline": "Search for order records in HubSpot CRM.", + "detailed": "This tool searches order records in HubSpot CRM based on specified criteria. It should be called when you need to find specific order details or filter orders according to certain conditions." + }, + "return_annotation": "Search results for order records.", + "arguments": [ + { + "name": "order_search_criteria", + "alternative_names": [ + "order_query_parameters", + "order_filter_conditions" + ], + "description": "JSON object containing criteria for searching order records in HubSpot CRM, including query, sorting, paging, and filters.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_orders", + "description": { + "tagline": "Retrieve order records from HubSpot CRM by ID or custom property.", + "detailed": "Use this tool to fetch order records from HubSpot CRM by providing record IDs or a custom unique value property. Ideal for accessing specific order details stored in your HubSpot account." + }, + "return_annotation": "Retrieve HubSpot order records by IDs or custom unique properties.", + "arguments": [ + { + "name": "order_retrieval_data", + "alternative_names": [ + "order_data_request", + "orders_input_payload" + ], + "description": "JSON object containing properties for retrieval, such as 'idProperty' for custom unique values or 'inputs' for record IDs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived_orders", + "alternative_names": [ + "retrieve_archived_only", + "fetch_exclusively_archived" + ], + "description": "Set to True to return only archived order records from HubSpot CRM.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of orders by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/orders/{orderId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_order_details", + "description": { + "tagline": "Retrieve details of an order using its ID.", + "detailed": "Call this tool to get detailed information about a specific order from the HubSpot CRM by using the order's ID. You can control which properties of the order are returned by specifying them in the `properties` query parameter." + }, + "return_annotation": "Order details including specified properties.", + "arguments": [ + { + "name": "order_identifier", + "alternative_names": [ + "order_id", + "order_reference" + ], + "description": "The unique identifier for the order. This can be the internal object ID or a unique property value specified by the idProperty.", + "endpoint_argument_name": "orderId" + }, + { + "name": "return_properties", + "alternative_names": [ + "properties_to_return", + "desired_properties" + ], + "description": "List the properties to retrieve for the order. Any nonexistent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_history_list", + "properties_with_past_values" + ], + "description": "A list of properties to return with their history of previous values. If specified properties are not present, they will be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "Comma separated list of object types to retrieve associated IDs. Non-existent associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "property_key_name" + ], + "description": "Specify the name of a unique property to identify the order. Overrides the default ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "get_archived_results", + "retrieve_archived_items" + ], + "description": "Set to true to return only archived results for the specified order.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/orders/{orderId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{orderId}`. `{orderId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "orderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/orders/{orderId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_order_by_id", + "description": { + "tagline": "Deletes an order by its ID from the CRM.", + "detailed": "Use this tool to delete an order from the CRM system by providing its unique ID. The order will be moved to the recycling bin, allowing for potential recovery later if needed." + }, + "return_annotation": "Confirms the order has been moved to the recycling bin.", + "arguments": [ + { + "name": "order_id", + "alternative_names": [ + "order_identifier", + "order_key" + ], + "description": "The unique ID of the order to delete, moving it to the recycling bin.", + "endpoint_argument_name": "orderId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/orders/{orderId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{orderId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "orderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/orders/{orderId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_order_details", + "description": { + "tagline": "Update specific details of an order using its ID.", + "detailed": "This tool performs a partial update of an order in HubSpot CRM, identified by the order's internal ID or a unique property value. Use it to modify existing order properties; read-only or non-existent properties cannot be updated and will cause errors. Properties can be cleared by providing empty values." + }, + "return_annotation": "Confirmation of the order update status.", + "arguments": [ + { + "name": "order_id", + "alternative_names": [ + "order_identifier", + "order_key" + ], + "description": "The internal ID of the order to be updated.", + "endpoint_argument_name": "orderId" + }, + { + "name": "order_update_properties", + "alternative_names": [ + "order_update_payload", + "order_properties_update" + ], + "description": "JSON object with key-value pairs of order properties to update. Empty strings can clear property values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_property_identifier", + "property_identifier" + ], + "description": "Specify the name of a unique property to identify the order object instead of using the order ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/orders/{orderId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{orderId}`or optionally a unique property value as specified by the `idProperty` query param. `{orderId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "orderId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_orders_in_hubspot", + "description": { + "tagline": "Create or update orders in HubSpot CRM.", + "detailed": "This tool calls the HubSpot CRM API to create or update multiple order records based on a unique property value. Use it when you need to batch insert or update orders by specifying a unique identifier for each order." + }, + "return_annotation": "Confirmation of orders created or updated in HubSpot CRM.", + "arguments": [ + { + "name": "orders_request_body", + "alternative_names": [ + "orders_data", + "order_payload" + ], + "description": "JSON object containing an array of orders, each with unique identifiers and properties for upsert operation.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of orders by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_orders", + "description": { + "tagline": "Create a batch of orders in HubSpot CRM.", + "detailed": "Use this tool to create multiple orders at once in HubSpot CRM. It is suitable when you need to efficiently process and record several orders simultaneously." + }, + "return_annotation": "Confirmation of batch order creation.", + "arguments": [ + { + "name": "orders_batch_data", + "alternative_names": [ + "batch_orders_payload", + "orders_creation_data" + ], + "description": "JSON array of orders to be created. Each order includes associations, properties, and an objectWriteTraceId.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of orders", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_orders_batch", + "description": { + "tagline": "Update multiple HubSpot CRM orders in a batch.", + "detailed": "Use this tool to update a batch of orders in HubSpot CRM by their internal ID or unique property values. Useful for modifying multiple order records at once." + }, + "return_annotation": "Confirmation of batch order update.", + "arguments": [ + { + "name": "order_batch_update_data", + "alternative_names": [ + "order_update_payload", + "batch_update_data" + ], + "description": "JSON object containing an array of order update details, including unique IDs and property key-value pairs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of orders by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/orders", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_orders_page", + "description": { + "tagline": "Retrieve a page of orders from CRM.", + "detailed": "This tool fetches a page of orders from the CRM. You can specify which properties to include in the results using the query parameters. Use this tool to list orders when needed." + }, + "return_annotation": "A page of orders with specified properties.", + "arguments": [ + { + "name": "results_per_page", + "alternative_names": [ + "max_results_per_page", + "page_size" + ], + "description": "The maximum number of orders to display per page. This controls the pagination size.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "pagination_cursor" + ], + "description": "Token for pagination, representing the last successfully read resource for fetching the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "order_properties_to_return", + "alternative_names": [ + "fields_to_include", + "attributes_to_retrieve" + ], + "description": "A list of properties to be included in the order response. Specify as a comma-separated string. Ignored if not present on the objects.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "order_properties_history", + "historical_properties" + ], + "description": "A list of order properties to return with their history of previous values. Reduces maximum results per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for; ignored if not existing.", + "endpoint_argument_name": "associations" + }, + { + "name": "only_return_archived_orders", + "alternative_names": [ + "return_archived_only", + "archived_orders_only" + ], + "description": "Set to true to return only archived orders. False returns both archived and unarchived orders.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/orders", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of orders. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of orders that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of orders that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_order", + "description": { + "tagline": "Create a new order in HubSpot CRM with specified properties.", + "detailed": "Use this tool to create a new order in the HubSpot CRM system. It returns the details and ID of the created order, allowing further tracking and management." + }, + "return_annotation": "Details of the newly created order, including its ID.", + "arguments": [ + { + "name": "order_details", + "alternative_names": [ + "order_data", + "new_order_info" + ], + "description": "JSON object containing associations and properties for the new order. Includes key-value pairs for details like customer ID and association types.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a order with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard orders is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/orders/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_orders_batch", + "description": { + "tagline": "Archive a batch of orders by ID in HubSpot CRM.", + "detailed": "" + }, + "return_annotation": "Confirmation of batch orders archived.", + "arguments": [ + { + "name": "order_ids_to_archive", + "alternative_names": [ + "orders_to_archive", + "ids_for_archiving" + ], + "description": "A JSON array of order IDs to archive, each with an 'id' field as a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/orders/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of orders by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.orders.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/partner_clients/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_partner_clients_batch", + "description": { + "tagline": "Update multiple partner clients in a batch.", + "detailed": "Use this tool to update information for multiple partner clients simultaneously in HubSpot CRM. It should be called when you need to make bulk updates to partner client records." + }, + "return_annotation": "Confirmation of batch update success or failure.", + "arguments": [ + { + "name": "partner_clients_update_data", + "alternative_names": [ + "batch_update_data", + "clients_bulk_update_payload" + ], + "description": "JSON containing an array of objects, each with 'idProperty', 'objectWriteTraceId', 'id', and 'properties' to update specific client records in bulk.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/partner_clients/batch/update", + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/partner_clients", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_partner_clients", + "description": { + "tagline": "Retrieve partner clients from HubSpot CRM.", + "detailed": "This tool retrieves a list of partner clients from the HubSpot CRM. It should be called when users need to access details about their partner clients stored in HubSpot's CRM." + }, + "return_annotation": "List of partner clients from HubSpot CRM.", + "arguments": [ + { + "name": "retrieval_limit", + "alternative_names": [ + "max_results", + "record_count_limit" + ], + "description": "Specifies the maximum number of partner clients to retrieve from the HubSpot CRM in a single call.", + "endpoint_argument_name": "limit" + }, + { + "name": "pagination_cursor", + "alternative_names": [ + "next_page_token", + "cursor_after" + ], + "description": "A string token to retrieve the next page of partner clients, obtained from a previous response.", + "endpoint_argument_name": "after" + }, + { + "name": "client_properties", + "alternative_names": [ + "client_attributes", + "partner_client_fields" + ], + "description": "A list of specific client properties to retrieve, such as 'name', 'email', etc.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_history", + "historic_properties" + ], + "description": "List property names to retrieve along with their historical versions. Each property should be specified as a string.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "include_associations", + "alternative_names": [ + "with_associations", + "fetch_associations" + ], + "description": "List of associations to include in the response. Specify names of associations as strings.", + "endpoint_argument_name": "associations" + }, + { + "name": "include_archived", + "alternative_names": [ + "show_archived", + "fetch_archived" + ], + "description": "Set to true to include archived partner clients, false to exclude them.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/partner_clients", + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/partner_clients/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_read_partner_clients", + "description": { + "tagline": "Fetch batch details of partner clients in HubSpot CRM.", + "detailed": "Use this tool to retrieve information for multiple partner clients at once from HubSpot CRM. Ideal for scenarios where bulk data about partner clients is needed." + }, + "return_annotation": "Batch details of partner clients.", + "arguments": [ + { + "name": "partner_clients_request_body", + "alternative_names": [ + "client_batch_request", + "partner_client_data_input" + ], + "description": "JSON object containing partner client details such as properties with history, id properties, inputs, and properties to retrieve batch data.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "include_archived", + "alternative_names": [ + "show_archived", + "retrieve_archived_clients" + ], + "description": "Set to true to include archived partner clients in the batch results. Default is false.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/partner_clients/batch/read", + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/partner_clients/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_partner_clients", + "description": { + "tagline": "Perform a search for partner clients in CRM.", + "detailed": "Use this tool to search for partner clients within the HubSpot CRM system. It should be called when you need to find specific partner client information or records based on search criteria." + }, + "return_annotation": "Search results for partner clients in CRM.", + "arguments": [ + { + "name": "partner_clients_search_criteria", + "alternative_names": [ + "search_body", + "query_parameters" + ], + "description": "A JSON object containing search criteria for partner clients, including query, limit, paging, sorting, properties, and filter groups.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/partner_clients/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/partner_clients/{partnerClientId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_partner_client_info", + "description": { + "tagline": "Retrieve information for a specific partner client.", + "detailed": "Call this tool to obtain details about a specific partner client using their unique identifier within the HubSpot CRM." + }, + "return_annotation": "Information about a specific partner client.", + "arguments": [ + { + "name": "partner_client_id", + "alternative_names": [ + "partner_client_identifier", + "client_id" + ], + "description": "The unique identifier for the partner client to retrieve details from HubSpot CRM.", + "endpoint_argument_name": "partnerClientId" + }, + { + "name": "optional_properties", + "alternative_names": [ + "specific_properties", + "requested_properties" + ], + "description": "An array of specific properties to retrieve for the partner client. Leave empty to obtain all available properties.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_including_history" + ], + "description": "Specify the list of properties to retrieve, including their historical values.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_objects", + "alternative_names": [ + "linked_entities", + "related_items" + ], + "description": "A list of associated object types to include, such as 'contacts' or 'deals'.", + "endpoint_argument_name": "associations" + }, + { + "name": "property_id", + "alternative_names": [ + "identifier_property", + "id_property" + ], + "description": "Specify which property should be used as the primary identifier for the partner client. Useful for custom identification schemes.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "include_archived_data", + "alternative_names": [ + "show_archived_records", + "retrieve_archived_data" + ], + "description": "Boolean to specify if archived partner client data should be included in the response. Set to true to include archived data.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/partner_clients/{partnerClientId}", + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "partnerClientId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/partner_clients/{partnerClientId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_partner_client", + "description": { + "tagline": "Update details of a partner client in HubSpot CRM.", + "detailed": "This tool is used to modify the information of a specified partner client in HubSpot CRM. It should be called when there is a need to update or change details related to a partner client using their unique ID." + }, + "return_annotation": "Confirmation of the partner client update.", + "arguments": [ + { + "name": "partner_client_id", + "alternative_names": [ + "partner_id", + "client_id" + ], + "description": "The unique identifier for the partner client to be updated in HubSpot CRM.", + "endpoint_argument_name": "partnerClientId" + }, + { + "name": "partner_client_update_details", + "alternative_names": [ + "client_details_update", + "update_client_properties" + ], + "description": "JSON object containing key-value pairs of properties to update for the partner client.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "identifier_property", + "alternative_names": [ + "id_field", + "identifier_attribute" + ], + "description": "Specify the property name used to identify the partner client for update operations.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/partner_clients/{partnerClientId}", + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "partnerClientId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "associate_partner_client_with_object", + "description": { + "tagline": "Associate a partner client with another CRM object.", + "detailed": "Use this tool to create an association between a partner client and another object in the CRM system, such as a contact, company, or deal. This can help in linking related entities for better data management and relationship tracking." + }, + "return_annotation": "Confirmation of successful association between objects.", + "arguments": [ + { + "name": "partner_client_id", + "alternative_names": [ + "client_identifier", + "partner_id" + ], + "description": "The unique identifier for the partner client you wish to associate with another object. This should be a string representing the partner client's ID in the CRM system.", + "endpoint_argument_name": "partnerClientId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "destination_object_type", + "associated_object_type" + ], + "description": "The type of the object to associate with the partner client (e.g., contact, company, deal).", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "target_object_id", + "alternative_names": [ + "object_id", + "destination_object_id" + ], + "description": "The unique identifier of the CRM object you are associating with the partner client. This could be any valid object ID such as that of a contact, company, or deal.", + "endpoint_argument_name": "toObjectId" + }, + { + "name": "association_type", + "alternative_names": [ + "link_type", + "relationship_type" + ], + "description": "Specifies the type of association (e.g., contact, company, deal) between the partner client and the object.", + "endpoint_argument_name": "associationType" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "tags": [ + "Associations" + ], + "summary": "Associate a partner client with another object", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "partnerClientId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_partner_client_association", + "description": { + "tagline": "Remove an association between two partner clients in HubSpot CRM.", + "detailed": "This tool removes an existing association between two partner clients in the HubSpot CRM system. It should be called when you need to disassociate a partner client from another object, identified by specific IDs and association type." + }, + "return_annotation": "Confirmation of association removal between partner clients.", + "arguments": [ + { + "name": "partner_client_id", + "alternative_names": [ + "client_id", + "partner_id" + ], + "description": "The unique identifier for the partner client to be disassociated. This should be a string that identifies the specific partner client in the HubSpot CRM.", + "endpoint_argument_name": "partnerClientId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "related_object_type", + "association_object_type" + ], + "description": "Specify the type of the object you are dissociating from the partner client, such as 'contacts' or 'companies'.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "target_object_id", + "alternative_names": [ + "destination_object_id", + "related_object_id" + ], + "description": "The unique identifier of the object associated with the target partner client.", + "endpoint_argument_name": "toObjectId" + }, + { + "name": "association_type", + "alternative_names": [ + "link_type", + "connection_type" + ], + "description": "The type of association to be removed between the partner client and the object. This defines the nature of their relationship.", + "endpoint_argument_name": "associationType" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "tags": [ + "Associations" + ], + "summary": "Remove an association between two partner clients", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "partnerClientId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "list_partner_client_associations", + "description": { + "tagline": "Retrieve associations of a partner client by type.", + "detailed": "Use this tool to list associations for a specific partner client in HubSpot CRM. It helps in retrieving related objects based on the specified type." + }, + "return_annotation": "List of associations of a partner client by type.", + "arguments": [ + { + "name": "partner_client_id", + "alternative_names": [ + "client_id", + "partner_id" + ], + "description": "The unique identifier for the partner client whose associations are to be retrieved. It is required and must be a valid string.", + "endpoint_argument_name": "partnerClientId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "associated_object_type", + "related_object_type" + ], + "description": "The type of object to which the partner client is associated. Specify using a string value representing the object type, such as 'contact' or 'deal'.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "cursor_after_token", + "paging_after_token" + ], + "description": "The token used for pagination to fetch the next set of results.", + "endpoint_argument_name": "after" + }, + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit", + "page_size" + ], + "description": "Specify the maximum number of results to display per page. Use an integer value.", + "endpoint_argument_name": "limit" + }, + { + "name": "include_family_associations", + "alternative_names": [ + "include_full_associations", + "include_all_associations" + ], + "description": "Indicate whether to include family associations in the response. Set to true to include them.", + "endpoint_argument_name": "includeFA" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}", + "tags": [ + "Associations" + ], + "summary": "List associations of a partner client by type", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-clients.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 500, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "includeFA", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "partnerClientId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/partner_services/{partnerServiceId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_partner_service_details", + "description": { + "tagline": "Retrieve details of a partner service by ID.", + "detailed": "Use this tool to get information about a specific partner service object using its ID. You can specify which properties to return or use the default settings to retrieve comprehensive details." + }, + "return_annotation": "Details of the specified partner service object.", + "arguments": [ + { + "name": "partner_service_id", + "alternative_names": [ + "partner_service_identifier", + "service_id" + ], + "description": "The unique ID of the partner service object to retrieve. This can be the internal object ID or a unique property value as specified by the `idProperty`.", + "endpoint_argument_name": "partnerServiceId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "properties_list", + "desired_properties" + ], + "description": "A list of property names to return for the partner service. Any missing properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_value_history" + ], + "description": "List of properties whose historical values should be returned for the partner service object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_ids", + "alternative_names": [ + "fetch_associated_object_ids", + "get_associated_ids" + ], + "description": "Comma-separated list of object types to retrieve associated IDs. Non-existent associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "property_name_for_identification" + ], + "description": "The name of a unique property to identify the object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "show_archived_only", + "include_only_archived" + ], + "description": "Set to true to return only archived results, false otherwise.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/partner_services/{partnerServiceId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{partnerServiceId}`. `{partnerServiceId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "partnerServiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/partner_services/{partnerServiceId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_partner_service", + "description": { + "tagline": "Partially update a partner service object in HubSpot CRM.", + "detailed": "Use this tool to update specific properties of a partner service object identified by `partnerServiceId` in HubSpot CRM. You can also use a unique property value specified by `idProperty`. Only existing, non-read-only properties can be updated. To clear a property, pass an empty string." + }, + "return_annotation": "Details of the updated partner service object.", + "arguments": [ + { + "name": "partner_service_id", + "alternative_names": [ + "service_id", + "partner_id" + ], + "description": "The internal object ID of the partner service to update. Use this to specify the object you want to partially update.", + "endpoint_argument_name": "partnerServiceId" + }, + { + "name": "update_properties", + "alternative_names": [ + "modify_properties", + "edit_properties" + ], + "description": "JSON object with key-value pairs representing properties to update. Non-existent or read-only properties will cause errors. Use empty strings to clear properties.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property_name", + "distinct_property_name" + ], + "description": "Specify the name of a unique property for the partner service object to identify it. This is used instead of the default internal ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/partner_services/{partnerServiceId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{partnerServiceId}`or optionally a unique property value as specified by the `idProperty` query param. `{partnerServiceId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "partnerServiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/partner_services/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_partner_services_records", + "description": { + "tagline": "Retrieve partner services records by ID or unique property.", + "detailed": "This tool retrieves records for partner services using either a record ID or a custom unique value property. It is ideal for accessing specific partner service data within the HubSpot CRM." + }, + "return_annotation": "Retrieved records for specified partner services.", + "arguments": [ + { + "name": "partner_services_query", + "alternative_names": [ + "partner_services_request_body", + "partner_services_data_payload" + ], + "description": "A JSON object containing query details for retrieving partner services records. Include 'idProperty' for custom retrieval, or provide 'inputs' with record IDs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived_records", + "alternative_names": [ + "only_archived_results", + "archived_records_only" + ], + "description": "Set to true to return only the archived records. False will include non-archived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/partner_services/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of partner services by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/partner_services/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_partner_services_hubspot", + "description": { + "tagline": "Search for partner services in HubSpot CRM.", + "detailed": "Use this tool to perform a search for partner services within the HubSpot CRM. It can be called when you need to find specific partner services based on given criteria or parameters." + }, + "return_annotation": "Results of the partner services search query.", + "arguments": [ + { + "name": "partner_services_search_request", + "alternative_names": [ + "search_parameters_hubspot", + "query_criteria_hubspot" + ], + "description": "JSON object containing search parameters such as query, limit, properties to include, sorting options, and filtering criteria for searching partner services.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/partner_services/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/partner_services", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_partner_services", + "description": { + "tagline": "Retrieve a page of partner services.", + "detailed": "Fetch a list of partner services from the HubSpot CRM. The returned data can be customized using the `properties` query parameter." + }, + "return_annotation": "A page of partner services data.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_display_limit", + "page_result_limit" + ], + "description": "The maximum number of results to display per page. Must be an integer value.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_after", + "alternative_names": [ + "cursor_after", + "next_page_token" + ], + "description": "The cursor token to retrieve the next page of results in a paged response.", + "endpoint_argument_name": "after" + }, + { + "name": "return_properties", + "alternative_names": [ + "response_properties", + "desired_properties" + ], + "description": "List of properties to return in the response. Ignored if not present on requested objects.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_history", + "historical_properties" + ], + "description": "List of property names to fetch with their history. Reduces max number of results per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. Ignored if associations do not exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "show_only_archived", + "filter_only_archived" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/partner_services", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of partner services. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of partner services that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of partner services that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "associate_partner_service", + "description": { + "tagline": "Associate a partner service with another CRM object.", + "detailed": "Use this tool to associate a partner service with another CRM object in HubSpot, such as contacts, companies, or deals. This is useful when you want to establish connections between different objects in your CRM." + }, + "return_annotation": "Confirmation of the association operation.", + "arguments": [ + { + "name": "partner_service_id", + "alternative_names": [ + "service_id", + "partner_id" + ], + "description": "The identifier for the partner service to associate with another object. This should be a valid string representing the unique ID of the partner service in the CRM.", + "endpoint_argument_name": "partnerServiceId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "destination_object_type", + "related_object_type" + ], + "description": "The type of CRM object to associate with the partner service, e.g., 'contacts', 'companies', or 'deals'.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "target_object_id", + "alternative_names": [ + "object_id_to_associate", + "destination_object_id" + ], + "description": "The ID of the target object you want to associate with the partner service. This should be a valid object ID in HubSpot CRM.", + "endpoint_argument_name": "toObjectId" + }, + { + "name": "association_type", + "alternative_names": [ + "association_kind", + "relation_type" + ], + "description": "Specifies the type of association to create between the partner service and another object (e.g., \"owner\", \"affiliate\").", + "endpoint_argument_name": "associationType" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "tags": [ + "Associations" + ], + "summary": "Associate a partner service with another object", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "partnerServiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_partner_service_association", + "description": { + "tagline": "Remove an association between two partner services.", + "detailed": "This tool removes the specified association between partner services in HubSpot CRM. Use it when you need to disassociate two services linked by a specific relationship." + }, + "return_annotation": "Confirmation of association removal.", + "arguments": [ + { + "name": "partner_service_id", + "alternative_names": [ + "partner_service_identifier", + "service_id" + ], + "description": "The unique identifier for the partner service. It specifies which partner service's association is to be removed.", + "endpoint_argument_name": "partnerServiceId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "destination_object_type", + "associated_object_type" + ], + "description": "The type of the object to which the partner service is associated. Specify the object category, such as 'contact', 'company', etc.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "target_object_id", + "alternative_names": [ + "destination_object_id", + "associated_service_id" + ], + "description": "The unique identifier of the object to be disassociated from the partner service. This is required to specify which object is being unlinked.", + "endpoint_argument_name": "toObjectId" + }, + { + "name": "association_type", + "alternative_names": [ + "relationship_type", + "association_kind" + ], + "description": "Specifies the type of association to remove between the partner services. This is a string value that defines how the services are linked.", + "endpoint_argument_name": "associationType" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "tags": [ + "Associations" + ], + "summary": "Remove an association between two partner services", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "partnerServiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/partner_services/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_partner_services_batch", + "description": { + "tagline": "Update multiple partner services in CRM by ID or unique properties.", + "detailed": "Use this tool to update a batch of partner services in the HubSpot CRM using internal IDs or unique property values." + }, + "return_annotation": "Confirmation of the batch update of partner services.", + "arguments": [ + { + "name": "partner_service_updates", + "alternative_names": [ + "partner_service_batch_data", + "update_service_payload" + ], + "description": "A JSON array containing objects with details like `id`, `idProperty`, `properties`, and `objectWriteTraceId` to update partner services.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/partner_services/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of partner services by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "list_partner_service_associations", + "description": { + "tagline": "Retrieve associations of a partner service by type.", + "detailed": "This tool retrieves a list of associations for a specified partner service in HubSpot CRM based on the provided type. It should be called when you need to explore relationships connected to a partner service, filtering by specific object types." + }, + "return_annotation": "List of associations for the specified partner service and type.", + "arguments": [ + { + "name": "partner_service_id", + "alternative_names": [ + "service_id", + "partner_id" + ], + "description": "The unique identifier of the partner service to retrieve associations for. This ID is required.", + "endpoint_argument_name": "partnerServiceId" + }, + { + "name": "target_object_type", + "alternative_names": [ + "associated_object_type", + "object_type_filter" + ], + "description": "The type of object to filter associations by, such as contacts, companies, etc.", + "endpoint_argument_name": "toObjectType" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "after_token", + "cursor_after" + ], + "description": "The token to continue paginated results from the last read resource.", + "endpoint_argument_name": "after" + }, + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit_per_page", + "page_size_limit" + ], + "description": "Specify the maximum number of results to display per page. This determines the page size for the response.", + "endpoint_argument_name": "limit" + }, + { + "name": "include_associated_fields", + "alternative_names": [ + "fields_association", + "associate_with_fields" + ], + "description": "Set to true to include associated fields in the response.", + "endpoint_argument_name": "includeFA" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}", + "tags": [ + "Associations" + ], + "summary": "List associations of a partner service by type", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.partner-services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 500, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "includeFA", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "partnerServiceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "toObjectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/payments/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_batch_payments", + "description": { + "tagline": "Retrieve a batch of payments from CRM by IDs or unique properties.", + "detailed": "Use this tool to get details of multiple payments from the CRM system based on internal IDs or unique property values." + }, + "return_annotation": "Batch payment details retrieved by IDs or property values.", + "arguments": [ + { + "name": "batch_payment_details", + "alternative_names": [ + "payment_request_body", + "payment_data_input" + ], + "description": "JSON object containing payment IDs, properties, and specific attributes like 'propertiesWithHistory', 'idProperty', and 'properties'.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "only_return_archived_results", + "alternative_names": [ + "only_fetch_archived_results", + "only_include_archived_results" + ], + "description": "Return only archived results if set to true.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/payments/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of payments by internal ID, or unique property values", + "description": "", + "requires_security": false, + "oauth_scopes": [], + "security_schemes": [], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/payments/{paymentsId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_payment_details", + "description": { + "tagline": "Retrieve details of a payment object by ID.", + "detailed": "Use this tool to obtain information about a specific payment object in the CRM by providing its ID. The ID can be the internal object ID or another unique property value. You can control the properties returned using the `properties` query parameter." + }, + "return_annotation": "Details of the specified payment object.", + "arguments": [ + { + "name": "payment_identifier", + "alternative_names": [ + "payment_id", + "unique_payment_key" + ], + "description": "The unique identifier for the payment object. This can be the internal object ID or a unique property value.", + "endpoint_argument_name": "paymentsId" + }, + { + "name": "requested_properties", + "alternative_names": [ + "properties_to_return", + "output_properties" + ], + "description": "A list of properties to return in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List of properties to return with their historical values. Unavailable properties will be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "alternative_names": [ + "get_related_object_ids", + "fetch_associated_objects" + ], + "description": "A list of object types to retrieve associated IDs for this payment. Non-existent associations are ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "property_identifier", + "unique_identifier_property" + ], + "description": "The name of a property uniquely identifying the payment object type. Used to specify a unique property other than the internal ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "include_only_archived", + "fetch_only_archived" + ], + "description": "Set to true to return only archived results in the response.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/payments/{paymentsId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{paymentsId}`. `{paymentsId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": false, + "oauth_scopes": [], + "security_schemes": [], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "description": "The name of a property whose values are unique for this object type", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "paymentsId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/payments", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_payment_records", + "description": { + "tagline": "Retrieve a page of payment records from HubSpot CRM.", + "detailed": "Use this tool to get a list of payment records from the HubSpot CRM. You can specify which properties to include in the results by using query parameters." + }, + "return_annotation": "A list of payment records with specified properties.", + "arguments": [ + { + "name": "results_per_page_limit", + "alternative_names": [ + "max_results_per_page", + "page_size_limit" + ], + "description": "Maximum number of payment records to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_token_after", + "alternative_names": [ + "next_page_token", + "pagination_cursor" + ], + "description": "The cursor token from the last read resource to fetch the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "payment_properties_to_include", + "alternative_names": [ + "payment_fields_to_return", + "payment_attributes" + ], + "description": "A list of property names to include in the response. Specified properties not present on the requested objects will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_histories", + "historical_properties" + ], + "description": "A list of property names to return with their historical values. Ignored if not present on objects.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "linked_entity_ids" + ], + "description": "A list of object types to retrieve associated IDs for. If specified associations do not exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "archived_results_only", + "alternative_names": [ + "return_archived_only", + "only_archived" + ], + "description": "Indicate if only archived payment records should be returned. Set to true to filter for archived records only.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/payments", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of payments. Control what is returned via the `properties` query param.", + "requires_security": false, + "oauth_scopes": [], + "security_schemes": [], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/payments/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_payments", + "description": { + "tagline": "Search for payments in HubSpot CRM.", + "detailed": "Use this tool to search for specific payments within the HubSpot CRM. It should be called when you need to locate payments based on specific criteria." + }, + "return_annotation": "Search results for HubSpot payments.", + "arguments": [ + { + "name": "payment_search_criteria", + "alternative_names": [ + "payment_query_parameters", + "payment_filter_options" + ], + "description": "Criteria for searching payments, including query, limit, pagination, sorting, and filters.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/payments/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": false, + "oauth_scopes": [], + "security_schemes": [], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "query": { + "type": "string" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "after": { + "type": "string" + }, + "sorts": { + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + }, + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"after\",\n \"filterGroups\",\n \"limit\",\n \"properties\",\n \"sorts\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit_getAudit", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_pipeline_stage_audit", + "description": { + "tagline": "Retrieve audit logs for a specific pipeline stage.", + "detailed": "This tool retrieves a reverse chronological list of all mutations that have occurred on a specified pipeline stage within HubSpot CRM. It should be called when you need to audit changes or track the history of a pipeline stage." + }, + "return_annotation": "List of recent mutations on the pipeline stage.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_object_type" + ], + "description": "The CRM object type to query for the pipeline stage, such as 'deals', 'tickets', or 'contacts'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "stage_identifier", + "alternative_names": [ + "stage_id_value", + "pipeline_stage_id" + ], + "description": "The unique identifier of the pipeline stage to audit. Use this to specify which stage's mutations you want to retrieve.", + "endpoint_argument_name": "stageId" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_reference" + ], + "description": "The unique identifier for the pipeline to retrieve stage audit logs from.", + "endpoint_argument_name": "pipelineId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit", + "tags": [ + "Pipeline Stage Audits" + ], + "summary": "", + "description": "Return a reverse chronological list of all mutations that have occurred on the pipeline stage identified by `{stageId}`.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "stageId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/pipelines/{objectType}/{pipelineId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_pipeline_by_id", + "description": { + "tagline": "Retrieve a single CRM pipeline by its unique ID.", + "detailed": "Use this tool to get detailed information about a specific pipeline in the HubSpot CRM by providing its unique identifier and object type." + }, + "return_annotation": "Details of a specific pipeline by ID.", + "arguments": [ + { + "name": "object_type_in_crm", + "alternative_names": [ + "crm_object_type", + "pipeline_object_type" + ], + "description": "Specify the type of CRM object, such as 'deals' or 'tickets', whose pipeline you want to retrieve.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_unique_id", + "alternative_names": [ + "crm_pipeline_identifier", + "pipeline_id" + ], + "description": "The unique identifier for the CRM pipeline to retrieve details. This value is required to fetch the specific pipeline information.", + "endpoint_argument_name": "pipelineId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}", + "tags": [ + "Pipelines" + ], + "summary": "Return a pipeline by ID", + "description": "Return a single pipeline object identified by its unique `{pipelineId}`.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/pipelines/{objectType}/{pipelineId}_replace", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "replace_pipeline_hubspot", + "description": { + "tagline": "Replace a specific pipeline in HubSpot CRM.", + "detailed": "Use this tool to replace a specific pipeline in HubSpot CRM when you need to update or modify the pipeline's entire structure or data." + }, + "return_annotation": "Confirmation of pipeline replacement in HubSpot CRM.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "resource_type" + ], + "description": "Specify the object type for the pipeline, such as 'deals' or 'tickets'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_identifier", + "alternative_names": [ + "pipeline_id", + "pipeline_key" + ], + "description": "The unique identifier of the pipeline to replace in HubSpot CRM. This is required to specify which pipeline is being modified.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "pipeline_details", + "alternative_names": [ + "pipeline_structure", + "pipeline_data" + ], + "description": "A JSON object containing details about the pipeline, including 'displayOrder', 'stages', and 'label'. Includes stage-specific metadata like 'probability' for deals and 'ticketState' for tickets.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "validate_references_before_deletion", + "alternative_names": [ + "check_references_prior_deletion", + "confirm_references_before_delete" + ], + "description": "Set to true to validate all references before deleting the pipeline.", + "endpoint_argument_name": "validateReferencesBeforeDelete" + }, + { + "name": "validate_deal_stage_usages_before_delete", + "alternative_names": [ + "check_deal_stage_usage_before_removal", + "ensure_stage_usage_checked_before_deletion" + ], + "description": "Set to true to validate deal stage usages before deleting a pipeline; false to proceed without validation.", + "endpoint_argument_name": "validateDealStageUsagesBeforeDelete" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}", + "tags": [ + "Pipelines" + ], + "summary": "Replace a pipeline", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "validateReferencesBeforeDelete", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "stages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "Pipeline stage inputs used to create the new or replacement pipeline." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "An input used to create or replace a pipeline's definition.", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "Pipeline stage inputs used to create the new or replacement pipeline.", + "items": { + "type": "object", + "description": "An input used to create or replace a pipeline stage's definition.", + "properties": { + "metadata": { + "type": "object", + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "required": [ + "displayOrder", + "label" + ] + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "required": [ + "displayOrder", + "label", + "stages" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"stages\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"stages\": {\n \"type\": \"array\",\n \"description\": \"Pipeline stage inputs used to create the new or replacement pipeline.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A unique label used to organize pipelines in HubSpot's UI\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline's definition.\",\n \"example\": {\n \"label\": \"My replaced pipeline\",\n \"displayOrder\": 0,\n \"stages\": [\n {\n \"label\": \"In Progress\",\n \"displayOrder\": 0,\n \"metadata\": {\n \"ticketState\": \"OPEN\"\n }\n },\n {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/pipelines/{objectType}/{pipelineId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_pipeline", + "description": { + "tagline": "Delete a specific pipeline in the CRM.", + "detailed": "This tool is used to delete a specific pipeline in HubSpot CRM by providing the object type and pipeline ID. Call this tool when a pipeline needs to be removed." + }, + "return_annotation": "Confirmation of pipeline deletion action.", + "arguments": [ + { + "name": "pipeline_object_type", + "alternative_names": [ + "pipeline_category", + "pipeline_entity_type" + ], + "description": "Specify the type of object for the pipeline, such as 'deals' or 'tickets'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_key" + ], + "description": "The unique identifier of the pipeline to be deleted. Required for specifying which pipeline to remove.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "validate_references_before_delete", + "alternative_names": [ + "check_references_before_delete", + "ensure_reference_check" + ], + "description": "Set to true to validate references before deleting the pipeline. This prevents accidental deletion when references are present.", + "endpoint_argument_name": "validateReferencesBeforeDelete" + }, + { + "name": "validate_deal_stage_usages_before_deletion", + "alternative_names": [ + "check_deal_stage_usages", + "verify_stage_usages_before_delete" + ], + "description": "Set to true to validate deal stage usages before deleting a pipeline, preventing deletion if usages are found.", + "endpoint_argument_name": "validateDealStageUsagesBeforeDelete" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}", + "tags": [ + "Pipelines" + ], + "summary": "Delete a pipeline", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "validateReferencesBeforeDelete", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/pipelines/{objectType}/{pipelineId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_pipeline_in_crm", + "description": { + "tagline": "Partially update a pipeline in the CRM.", + "detailed": "Use this tool to perform a partial update of a pipeline identified by its pipeline ID within a specified object type in the CRM. The tool will return the updated pipeline details." + }, + "return_annotation": "The updated pipeline details.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "pipeline_object_type", + "type_of_crm_object" + ], + "description": "Specify the type of CRM object (e.g., deals, tickets) to update the pipeline for.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_identifier", + "alternative_names": [ + "pipeline_id_value", + "pipeline_unique_id" + ], + "description": "The unique identifier for the pipeline to be updated. This is required to specify which pipeline to modify.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "pipeline_display_order", + "alternative_names": [ + "pipeline_display_position", + "crm_pipeline_order" + ], + "description": "The display order number to determine the position of the pipeline in the CRM. Pipelines with the same display order are sorted alphabetically by label.", + "endpoint_argument_name": "displayOrder" + }, + { + "name": "pipeline_label", + "alternative_names": [ + "pipeline_name", + "pipeline_identifier" + ], + "description": "A unique label to organize and identify the pipeline within HubSpot's UI.", + "endpoint_argument_name": "label" + }, + { + "name": "validate_references_before_deletion", + "alternative_names": [ + "check_refs_prior_to_deletion", + "ensure_references_validated_before_delete" + ], + "description": "Set to true to validate references before deletion.", + "endpoint_argument_name": "validateReferencesBeforeDelete" + }, + { + "name": "validate_deal_stage_usages_before_delete", + "alternative_names": [ + "check_deal_stage_usages_before_deletion", + "confirm_deal_stage_usages_prior_to_deletion" + ], + "description": "Indicate if deal stage usages should be validated before deletion. A boolean value is expected.", + "endpoint_argument_name": "validateDealStageUsagesBeforeDelete" + }, + { + "name": "is_pipeline_archived", + "alternative_names": [ + "pipeline_archived_status", + "check_pipeline_archived" + ], + "description": "Set to true if the pipeline is currently archived and you intend to restore it. Use only for restoration calls.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}", + "tags": [ + "Pipelines" + ], + "summary": "", + "description": "Perform a partial update of the pipeline identified by `{pipelineId}`. The updated pipeline will be returned in the response.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "validateReferencesBeforeDelete", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned." + }, + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "boolean", + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned." + }, + "schema_required": false + }, + { + "name": "displayOrder", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "label", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "description": "A unique label used to organize pipelines in HubSpot's UI", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A unique label used to organize pipelines in HubSpot's UI\"\n }\n },\n \"description\": \"An input used to update some properties on a pipeline definition.\",\n \"example\": {\n \"label\": \"My updated pipeline\",\n \"displayOrder\": 0\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_pipeline_stages", + "description": { + "tagline": "Retrieve all stages of a specified pipeline.", + "detailed": "Use this tool to get all the stages associated with a specific pipeline in HubSpot CRM. It requires specifying the pipeline through its ID and object type." + }, + "return_annotation": "Stages associated with the specified pipeline.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "category_type" + ], + "description": "Specify the type of CRM object, such as deals or tickets, associated with the pipeline.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_key" + ], + "description": "The ID of the pipeline to retrieve stages for. Must be a valid pipeline ID in HubSpot CRM.", + "endpoint_argument_name": "pipelineId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages", + "tags": [ + "Pipeline Stages" + ], + "summary": "Return all stages of a pipeline", + "description": "Return all the stages associated with the pipeline identified by `{pipelineId}`.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_pipeline_stage", + "description": { + "tagline": "Create a stage in a specified pipeline.", + "detailed": "This tool creates a new stage within a specified pipeline in the HubSpot CRM. Use it when you need to add a new stage to an existing pipeline, specifying the object type and pipeline ID." + }, + "return_annotation": "Details of the created pipeline stage.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "pipeline_object_type", + "stage_object_type" + ], + "description": "Specify the CRM object type, such as deals or tickets, for the pipeline.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_reference" + ], + "description": "The unique identifier of the pipeline where the new stage will be created.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "pipeline_stage_details", + "alternative_names": [ + "stage_data", + "pipeline_stage_info" + ], + "description": "JSON object with details for the pipeline stage, including metadata, display order, and label.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages", + "tags": [ + "Pipeline Stages" + ], + "summary": "Create a pipeline stage", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "An input used to create or replace a pipeline stage's definition.", + "properties": { + "metadata": { + "type": "object", + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "required": [ + "displayOrder", + "label" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/audit_getAudit", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_pipeline_audit_log", + "description": { + "tagline": "Retrieves the audit log for a specified CRM pipeline.", + "detailed": "Call this tool to obtain a list of all changes made to a specified pipeline in HubSpot CRM, in reverse chronological order." + }, + "return_annotation": "List of mutations on the specified pipeline.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_category" + ], + "description": "The type of CRM object for which audit logs are being retrieved, such as 'deals' or 'contacts'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_key" + ], + "description": "The unique identifier for the pipeline to fetch the audit log from. This ID is used to target a specific pipeline within HubSpot CRM.", + "endpoint_argument_name": "pipelineId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/audit", + "tags": [ + "Pipeline Audits" + ], + "summary": "Return an audit of all changes to the pipeline", + "description": "Return a reverse chronological list of all mutations that have occurred on the pipeline identified by `{pipelineId}`.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/pipelines/{objectType}_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_all_pipelines", + "description": { + "tagline": "Retrieve all pipelines for a specified object type.", + "detailed": "Use this tool to fetch all pipelines related to a specific object type in HubSpot CRM. This is useful for obtaining pipeline information for various CRM entities such as contacts, deals, etc." + }, + "return_annotation": "Returns all pipelines for the specified object type.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_object_type" + ], + "description": "Specify the CRM object type (e.g., contacts, deals) to retrieve pipelines for.", + "endpoint_argument_name": "objectType" + } + ] + }, + "method": "GET", + "path": "/crm/v3/pipelines/{objectType}", + "tags": [ + "Pipelines" + ], + "summary": "Retrieve all pipelines", + "description": "Return all pipelines for the object type specified by `{objectType}`.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/pipelines/{objectType}_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_crm_pipeline", + "description": { + "tagline": "Create a new CRM pipeline in HubSpot.", + "detailed": "Use this tool to create a new pipeline in HubSpot CRM with given property values. It returns the entire pipeline object, including its unique ID." + }, + "return_annotation": "Returns the newly created pipeline object with its unique ID.", + "arguments": [ + { + "name": "pipeline_object_type", + "alternative_names": [ + "pipeline_type", + "crm_object_type" + ], + "description": "Specify the type of CRM object for the pipeline, such as 'deals' or 'tickets'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_details", + "alternative_names": [ + "pipeline_properties", + "pipeline_configuration" + ], + "description": "JSON object containing pipeline details such as display order, stages, and label to create a CRM pipeline in HubSpot.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/pipelines/{objectType}", + "tags": [ + "Pipelines" + ], + "summary": "Create a pipeline", + "description": "Create a new pipeline with the provided property values. The entire pipeline object, including its unique ID, will be returned in the response.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "stages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "Pipeline stage inputs used to create the new or replacement pipeline." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "An input used to create or replace a pipeline's definition.", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "Pipeline stage inputs used to create the new or replacement pipeline.", + "items": { + "type": "object", + "description": "An input used to create or replace a pipeline stage's definition.", + "properties": { + "metadata": { + "type": "object", + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "required": [ + "displayOrder", + "label" + ] + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "required": [ + "displayOrder", + "label", + "stages" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"stages\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"stages\": {\n \"type\": \"array\",\n \"description\": \"Pipeline stage inputs used to create the new or replacement pipeline.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A unique label used to organize pipelines in HubSpot's UI\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline's definition.\",\n \"example\": {\n \"label\": \"My replaced pipeline\",\n \"displayOrder\": 0,\n \"stages\": [\n {\n \"label\": \"In Progress\",\n \"displayOrder\": 0,\n \"metadata\": {\n \"ticketState\": \"OPEN\"\n }\n },\n {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_pipeline_stage_by_id", + "description": { + "tagline": "Retrieve a specific pipeline stage by its ID.", + "detailed": "Use this tool to get details of a particular stage within a pipeline in HubSpot CRM, identified by its unique stage ID." + }, + "return_annotation": "Details of a specific pipeline stage by ID.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "object_category", + "entity_type" + ], + "description": "The type of CRM object, such as 'deals' or 'tickets', to access the pipeline stage for.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_reference" + ], + "description": "The unique identifier for the pipeline in HubSpot CRM. Use this ID to specify which pipeline the stage belongs to.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "stage_id", + "alternative_names": [ + "pipeline_stage_id", + "stage_identifier" + ], + "description": "Unique ID of the pipeline stage to retrieve details from HubSpot CRM.", + "endpoint_argument_name": "stageId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "tags": [ + "Pipeline Stages" + ], + "summary": "Return a pipeline stage by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "stageId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_replace", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "replace_pipeline_stage_properties", + "description": { + "tagline": "Replace and update a pipeline stage in HubSpot CRM.", + "detailed": "Use this tool to replace all properties of an existing pipeline stage in HubSpot CRM with the provided values. The modified stage's details are returned in the response." + }, + "return_annotation": "The updated pipeline stage details.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "pipeline_object_type", + "crm_entity_type" + ], + "description": "Specifies the CRM object type like 'deals' or 'contacts' to identify the pipeline stage being replaced.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_key" + ], + "description": "The unique identifier for the pipeline whose stage properties are to be replaced. This must match the ID used in HubSpot CRM.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "pipeline_stage_id", + "alternative_names": [ + "stage_identifier", + "pipeline_stage_identifier" + ], + "description": "The unique identifier for the pipeline stage to be replaced. This is required to specify which stage's properties will be updated.", + "endpoint_argument_name": "stageId" + }, + { + "name": "pipeline_stage_properties", + "alternative_names": [ + "stage_properties", + "pipeline_stage_update" + ], + "description": "A JSON object with new properties for the pipeline stage. Includes fields like `metadata`, `displayOrder`, and `label`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PUT", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "tags": [ + "Pipeline Stages" + ], + "summary": "Replace a pipeline stage", + "description": "Replace all the properties of an existing pipeline stage with the values provided. The updated stage will be returned in the response.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "stageId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "An input used to create or replace a pipeline stage's definition.", + "properties": { + "metadata": { + "type": "object", + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "required": [ + "displayOrder", + "label" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_pipeline_stage", + "description": { + "tagline": "Deletes a pipeline stage from HubSpot CRM.", + "detailed": "Use to remove a specific stage from a pipeline in HubSpot CRM by specifying the object type, pipeline ID, and stage ID." + }, + "return_annotation": "Confirmation of pipeline stage deletion.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_object_type" + ], + "description": "Specify the type of CRM object (e.g., deals, tickets) for which the pipeline stage is being deleted.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_reference" + ], + "description": "The unique ID of the pipeline containing the stage to be deleted.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "stage_identifier", + "alternative_names": [ + "stage_id", + "pipeline_stage_id" + ], + "description": "The unique identifier of the pipeline stage to be deleted.", + "endpoint_argument_name": "stageId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "tags": [ + "Pipeline Stages" + ], + "summary": "Delete a pipeline stage", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "stageId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_pipeline_stage", + "description": { + "tagline": "Update a stage in a CRM pipeline.", + "detailed": "Use this tool to update the details of a specific stage within a CRM pipeline. It is useful when you need to modify the attributes of a pipeline stage, such as its name or order, to reflect changes in the sales or business process." + }, + "return_annotation": "Confirmation of pipeline stage update.", + "arguments": [ + { + "name": "pipeline_object_type", + "alternative_names": [ + "crm_object_type", + "pipeline_entity_type" + ], + "description": "The type of CRM object in the pipeline, such as 'deals' or 'tickets'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "pipeline_id", + "alternative_names": [ + "pipeline_identifier", + "pipeline_ref" + ], + "description": "A unique identifier for the pipeline to be updated. This is necessary to specify which pipeline contains the stage you want to modify.", + "endpoint_argument_name": "pipelineId" + }, + { + "name": "stage_id", + "alternative_names": [ + "pipeline_stage_id", + "stage_identifier" + ], + "description": "The unique identifier of the stage to be updated within the pipeline. This is required to specify which stage's details need modification.", + "endpoint_argument_name": "stageId" + }, + { + "name": "pipeline_stage_details", + "alternative_names": [ + "stage_update_data", + "stage_attributes" + ], + "description": "A JSON object detailing the stage attributes to update. Includes fields like `archived`, `metadata`, `displayOrder`, and `label`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "tags": [ + "Pipeline Stages" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "pipelineId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "stageId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the pipeline is archived." + }, + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "An input used to update some properties on a pipeline definition.", + "properties": { + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the pipeline is archived.\"\n },\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to update some properties on a pipeline definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_multiple_postal_mail_objects", + "description": { + "tagline": "Retrieve multiple postal mail objects by IDs or unique values.", + "detailed": "This tool retrieves multiple postal mail objects from HubSpot CRM using their internal IDs or unique property values. It is useful when you need to access detailed information on several postal mail entries at once." + }, + "return_annotation": "Information on multiple postal mail objects.", + "arguments": [ + { + "name": "postal_mail_request_details", + "alternative_names": [ + "postal_mail_batch_request", + "postal_mail_data_request" + ], + "description": "JSON object including properties with history, unique ID property, inputs, and properties for the postal mail batch retrieval.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "include_archived", + "alternative_names": [ + "show_archived", + "fetch_archived" + ], + "description": "Set to true to include archived postal mail objects in the results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail/batch/read", + "tags": [ + "Batch" + ], + "summary": "", + "description": "Retrieve multiple postal mail objects using their internal IDs or unique property values.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_postal_mail_batch", + "description": { + "tagline": "Archive a batch of postal mail objects using their IDs.", + "detailed": "Use this tool to archive multiple postal mail objects in HubSpot CRM by providing their IDs. This is useful for managing large volumes of mailing data efficiently." + }, + "return_annotation": "Confirmation of postal mail objects archived.", + "arguments": [ + { + "name": "postal_mail_ids", + "alternative_names": [ + "postal_mail_object_ids", + "mail_ids" + ], + "description": "A JSON array of objects, each containing an 'id' field for the postal mail objects to be archived.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Batch archive", + "description": "Archive a batch of postal mail objects using their IDs.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/postal_mail_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_postal_mail_records", + "description": { + "tagline": "Retrieve postal mail records from the CRM.", + "detailed": "Use this tool to access postal mail records from the CRM. It is helpful for obtaining stored postal mail information." + }, + "return_annotation": "List of postal mail records from CRM.", + "arguments": [ + { + "name": "max_records", + "alternative_names": [ + "record_limit", + "limit_records" + ], + "description": "The maximum number of postal mail records to return. Must be an integer.", + "endpoint_argument_name": "limit" + }, + { + "name": "pagination_cursor_after", + "alternative_names": [ + "continuation_token_after", + "record_offset_after" + ], + "description": "A cursor for pagination. Use it to retrieve the next set of postal mail records after a specific point.", + "endpoint_argument_name": "after" + }, + { + "name": "retrieve_specific_properties", + "alternative_names": [ + "fetch_specific_fields", + "get_selected_properties" + ], + "description": "List of specific properties to include in the response. Provide property names as strings.", + "endpoint_argument_name": "properties" + }, + { + "name": "include_properties_history", + "alternative_names": [ + "properties_with_history", + "historical_properties" + ], + "description": "Specify property names to include their history in the records. Use an array of strings.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_objects", + "alternative_names": [ + "related_entities", + "linked_items" + ], + "description": "A list of object types to retrieve associations for, such as contacts or companies.", + "endpoint_argument_name": "associations" + }, + { + "name": "include_archived_records", + "alternative_names": [ + "retrieve_archived_records", + "fetch_archived_records" + ], + "description": "Include archived postal mail records if true; exclude them if false.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/postal_mail", + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_postal_mail_object", + "description": { + "tagline": "Create a postal mail object in HubSpot CRM.", + "detailed": "This tool is used to create a postal mail object in the HubSpot CRM with the provided properties. It returns a copy of the created object, including its unique identifier. Use this tool to record postal mail interactions in your CRM." + }, + "return_annotation": "A copy of the created postal mail object, including its ID.", + "arguments": [ + { + "name": "postal_mail_properties", + "alternative_names": [ + "postal_mail_data", + "mail_object_properties" + ], + "description": "JSON object containing key-value pairs for the properties of the new postal mail object and any associations.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a postal mail object with the given properties and return a copy of the object, including the ID. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_postal_mail_batch", + "description": { + "tagline": "Create a batch of postal mail objects in HubSpot CRM.", + "detailed": "Use this tool to create multiple postal mail records within the HubSpot CRM system. Ideal for handling bulk postal mail operations efficiently." + }, + "return_annotation": "Confirmation of postal mail batch creation.", + "arguments": [ + { + "name": "postal_mail_batch_data", + "alternative_names": [ + "mail_batch_details", + "postal_mail_entries" + ], + "description": "A JSON object containing an array of postal mail entries with details like associations, properties, and trace IDs for batch creation.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail/batch/create", + "tags": [ + "Batch" + ], + "summary": "Batch create", + "description": "Create a batch of postal mail objects.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_postal_mail_in_hubspot", + "description": { + "tagline": "Create or update postal mail records in HubSpot CRM.", + "detailed": "This tool creates or updates postal mail records in HubSpot CRM based on a unique property value specified by the `idProperty` query parameter. Use it to ensure postal mail records are up-to-date and accurately maintained." + }, + "return_annotation": "Confirmation of postal mail records creation or update.", + "arguments": [ + { + "name": "postal_mail_records", + "alternative_names": [ + "postal_mail_data", + "postal_mail_entries" + ], + "description": "An array of postal mail records with unique identifiers and their properties. Each record should include `idProperty`, `objectWriteTraceId`, `id`, and `properties` to specify the unique aspects and data of the postal mail object.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Batch upsert", + "description": "Create or update postal mails identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/postal_mail/{postalMailId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_postal_mail_by_id", + "description": { + "tagline": "Retrieve details of a postal mail record by ID from HubSpot CRM.", + "detailed": "Use this tool to get detailed information about a specific postal mail record in HubSpot CRM by providing the postal mail ID." + }, + "return_annotation": "Details of a specific postal mail record in HubSpot CRM.", + "arguments": [ + { + "name": "postal_mail_id", + "alternative_names": [ + "mail_record_id", + "postal_id" + ], + "description": "The unique identifier for the postal mail record to retrieve details from HubSpot CRM.", + "endpoint_argument_name": "postalMailId" + }, + { + "name": "specified_properties", + "alternative_names": [ + "selected_properties", + "chosen_attributes" + ], + "description": "A list of specific postal mail properties to retrieve. Leave empty to get all properties.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_history", + "historical_properties" + ], + "description": "A list of property names for which history should be returned. Accepts an array of strings.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "related_objects_associations", + "alternative_names": [ + "linked_entities", + "connected_records" + ], + "description": "List of string identifiers representing related objects to retrieve alongside the postal mail record.", + "endpoint_argument_name": "associations" + }, + { + "name": "identify_by_id_property", + "alternative_names": [ + "use_property_id_for_identification", + "id_property_for_lookup" + ], + "description": "Specifies which property will be used as the primary identifier. Accepts a string that represents the property within the postal mail object that should be used to identify and retrieve details.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "include_archived", + "alternative_names": [ + "show_archived", + "retrieve_archived" + ], + "description": "Set to true to include archived postal mail records in the response.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/postal_mail/{postalMailId}", + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "postalMailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/postal_mail/{postalMailId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_postal_mail", + "description": { + "tagline": "Archive a postal mail object in HubSpot CRM.", + "detailed": "This tool moves a postal mail object, specified by its ID, to the recycling bin in HubSpot CRM. Use this tool when you need to archive a specific postal mail entry." + }, + "return_annotation": "Confirmation of postal mail archived.", + "arguments": [ + { + "name": "postal_mail_id", + "alternative_names": [ + "postal_mail_identifier", + "mail_id" + ], + "description": "The unique identifier of the postal mail object to be archived.", + "endpoint_argument_name": "postalMailId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/postal_mail/{postalMailId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move the postal mail object with the ID `{postalMailId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "postalMailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/postal_mail/{postalMailId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_postal_mail_record", + "description": { + "tagline": "Update a postal mail record in HubSpot CRM.", + "detailed": "Use this tool to update an existing postal mail record in HubSpot CRM by specifying the postalMailId of the record to be updated." + }, + "return_annotation": "Details of the updated postal mail record.", + "arguments": [ + { + "name": "postal_mail_id", + "alternative_names": [ + "mail_record_id", + "postal_id" + ], + "description": "A unique identifier for the postal mail record to be updated in HubSpot CRM.", + "endpoint_argument_name": "postalMailId" + }, + { + "name": "postal_mail_update_data", + "alternative_names": [ + "postal_mail_update_details", + "postal_mail_update_properties" + ], + "description": "JSON object containing key-value pairs of the postal mail properties to update.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "property_identifier", + "alternative_names": [ + "property_id", + "field_identifier" + ], + "description": "Specify the property key of the postal mail record to identify which field to update. This is typically the name of the field in the CRM record.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/postal_mail/{postalMailId}", + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "postalMailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_multiple_postal_mails", + "description": { + "tagline": "Update multiple postal mail records at once in HubSpot CRM.", + "detailed": "Use this tool to update several postal mail objects within HubSpot CRM in a single request, streamlining batch modifications." + }, + "return_annotation": "Confirmation of postal mail updates.", + "arguments": [ + { + "name": "postal_mail_updates", + "alternative_names": [ + "mail_batch_updates", + "postal_mail_records" + ], + "description": "JSON array containing objects with ids and properties to update postal mail records. Each object should include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail/batch/update", + "tags": [ + "Batch" + ], + "summary": "", + "description": "Update multiple postal mail objects in a single request.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/postal_mail/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_postal_mail_hubspot", + "description": { + "tagline": "Search for postal mail objects in HubSpot CRM.", + "detailed": "Use this tool to search for postal mail records in HubSpot CRM based on specific criteria. This is useful when you need to retrieve details about postal interactions stored within the CRM." + }, + "return_annotation": "Search results for postal mail records.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "query_parameters", + "search_request_body" + ], + "description": "A JSON object defining the search criteria, including query, limit, paging, sorting, and filtering options.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/postal_mail/search", + "tags": [ + "Search" + ], + "summary": "Search", + "description": "Search for postal mail objects using specific criteria in the request.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_products_batch", + "description": { + "tagline": "Archive a batch of products by ID in HubSpot CRM.", + "detailed": "Use this tool to archive multiple products in HubSpot CRM by providing their IDs. It should be called when you need to bulk remove products from the CRM database." + }, + "return_annotation": "Confirms batch archival of products by ID.", + "arguments": [ + { + "name": "product_ids", + "alternative_names": [ + "product_id_list", + "ids_to_archive" + ], + "description": "A list of product IDs to be archived from HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of products by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/products_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_products_page", + "description": { + "tagline": "Fetch a page of products from HubSpot CRM.", + "detailed": "Use this tool to retrieve a page of products from the HubSpot CRM. You can control the returned product details using the `properties` query parameter." + }, + "return_annotation": "Page of products with specified properties.", + "arguments": [ + { + "name": "maximum_results_per_page", + "alternative_names": [ + "results_per_page_limit", + "page_results_max" + ], + "description": "The maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "after_cursor" + ], + "description": "The cursor token for the last read resource, used for paged responses.", + "endpoint_argument_name": "after" + }, + { + "name": "product_properties_to_return", + "alternative_names": [ + "properties_list", + "requested_properties" + ], + "description": "Comma-separated properties to include in the response. Any non-existent properties for the requested objects will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "include_properties_with_history", + "alternative_names": [ + "properties_with_history", + "historical_properties" + ], + "description": "Comma separated list of product properties to include along with their history. Reduces maximum results per request if used.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "linked_object_types" + ], + "description": "Provide a comma-separated list of object types to retrieve associated IDs for. Ignored if not existing.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_archived_results", + "show_archived_only" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/products", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of products. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of products that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of products that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_product_in_hubspot", + "description": { + "tagline": "Create a new product in HubSpot CRM.", + "detailed": "Use this tool to create a product in HubSpot CRM with specified properties. It returns the created product details, including the ID, which can be used for further referencing or operations." + }, + "return_annotation": "Returns the created product details, including the ID.", + "arguments": [ + { + "name": "product_properties", + "alternative_names": [ + "product_details", + "new_product_data" + ], + "description": "A JSON object containing key-value pairs for the product's properties and any associations, defining attributes and connections.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a product with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard products is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_products", + "description": { + "tagline": "Search for products in HubSpot CRM.", + "detailed": "Use this tool to search for and retrieve product information from HubSpot CRM. It calls the endpoint designed to query products based on specified criteria." + }, + "return_annotation": "Search results for HubSpot CRM products.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "product_search_criteria", + "hubspot_search_filters" + ], + "description": "JSON object containing search parameters such as query, limit, paging cursor, sorting order, properties to return, and filter groups for product search in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_product_records", + "description": { + "tagline": "Retrieve HubSpot product records by ID or unique property.", + "detailed": "This tool retrieves HubSpot CRM product records using a record ID or a custom unique value property (`idProperty`). It is useful for accessing detailed product data stored in HubSpot CRM based on specific identifiers." + }, + "return_annotation": "Retrieves HubSpot product records based on ID or unique properties.", + "arguments": [ + { + "name": "product_record_request_body", + "alternative_names": [ + "product_data_request_body", + "product_query_payload" + ], + "description": "JSON object containing 'idProperty', 'properties', 'propertiesWithHistory', and 'inputs'. Used to specify product records by ID or unique properties.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "only_archived", + "alternative_names": [ + "archived_only", + "filter_archived" + ], + "description": "Set to true to retrieve only archived product records. False returns unarchived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of products by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_products", + "description": { + "tagline": "Create a batch of products in HubSpot CRM.", + "detailed": "Use this tool to add multiple products to the HubSpot CRM in a single batch. Ideal for updating product catalogs efficiently." + }, + "return_annotation": "Confirmation of product batch creation.", + "arguments": [ + { + "name": "product_batch_data", + "alternative_names": [ + "product_data_list", + "batch_product_data" + ], + "description": "A JSON object containing an array of products to be created. Each product should include details like properties, associations, and an optional object write trace ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of products", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_hubspot_products_batch", + "description": { + "tagline": "Batch create or update HubSpot product records.", + "detailed": "This tool is used to create or update HubSpot product records in bulk, identified by a unique property value specified by the `idProperty`. It should be called when there's a need to synchronize or modify multiple product entries in the HubSpot CRM." + }, + "return_annotation": "Confirmation of product records upsert status.", + "arguments": [ + { + "name": "product_batch_input_data", + "alternative_names": [ + "products_bulk_data_input", + "batch_product_entries" + ], + "description": "JSON array of product records to upsert. Each record must include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of products by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/products/{productId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_product_details_by_id", + "description": { + "tagline": "Retrieve product details using a product ID.", + "detailed": "This tool retrieves the details of a product in HubSpot CRM using its product ID. It can also use any unique property specified by the `idProperty` query parameter. Use this tool to obtain specific product information from HubSpot CRM." + }, + "return_annotation": "Product details identified by productId.", + "arguments": [ + { + "name": "product_id", + "alternative_names": [ + "unique_product_identifier", + "product_reference_id" + ], + "description": "A unique identifier for the product. Can be the internal ID or any unique property as specified by `idProperty`.", + "endpoint_argument_name": "productId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "product_properties", + "fields_to_retrieve" + ], + "description": "A list of product properties to include in the response. Any missing properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List properties to return with their history of past values, separated by commas. Ignored if not present in object.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "alternative_names": [ + "fetch_associated_object_ids", + "get_related_object_ids" + ], + "description": "A list of object types to retrieve associated IDs for. Any non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_identifier_name" + ], + "description": "Specify the property name with unique values for the product object, instead of default productId.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_only", + "archived_results_only" + ], + "description": "Set to true to return only archived results. If false, only non-archived results are returned.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/products/{productId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{productId}`. `{productId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "productId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/products/{productId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_product", + "description": { + "tagline": "Archive a product by moving it to the recycling bin.", + "detailed": "Use this tool to move a product, identified by its productId, to the recycling bin in HubSpot CRM." + }, + "return_annotation": "Confirmation of product archival.", + "arguments": [ + { + "name": "product_id", + "alternative_names": [ + "product_identifier", + "product_key" + ], + "description": "The unique identifier of the product to be archived in HubSpot CRM.", + "endpoint_argument_name": "productId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/products/{productId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{productId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "productId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/products/{productId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_product_info", + "description": { + "tagline": "Partially update product information in HubSpot CRM.", + "detailed": "This tool updates specific properties of a product identified by `productId` in HubSpot CRM. It will override existing property values, and returning errors for read-only or non-existent properties. Use when you need to modify product attributes such as name, price, or description." + }, + "return_annotation": "Confirmation of the product update operation.", + "arguments": [ + { + "name": "product_id", + "alternative_names": [ + "product_identifier", + "product_unique_id" + ], + "description": "The internal object ID of the product to be updated. This identifies the specific product in HubSpot CRM for the update operation.", + "endpoint_argument_name": "productId" + }, + { + "name": "product_properties_update", + "alternative_names": [ + "update_product_properties", + "modify_product_info" + ], + "description": "JSON object with key-value pairs of product properties to update. Only existing properties can be updated. Pass empty strings to clear values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_key_name" + ], + "description": "The unique property name used to identify the product. It should be a string representing a property with unique values.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/products/{productId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{productId}`or optionally a unique property value as specified by the `idProperty` query param. `{productId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "productId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/products/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_products_batch", + "description": { + "tagline": "Update a batch of HubSpot products by ID or unique properties.", + "detailed": "Use this tool to update multiple products in HubSpot CRM with new details by internal IDs or unique property values." + }, + "return_annotation": "Confirmation of batch update for products.", + "arguments": [ + { + "name": "product_updates_payload", + "alternative_names": [ + "products_batch_update_payload", + "hubspot_update_payload" + ], + "description": "JSON payload containing an array of product updates. Each update includes 'id' or 'idProperty', 'objectWriteTraceId', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/products/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of products by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.products.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/properties/{objectType}/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_crm_properties", + "description": { + "tagline": "Archive a list of properties in HubSpot CRM.", + "detailed": "Use this tool to archive a provided list of properties within a specified object type in HubSpot CRM. It returns a confirmation of successful archiving, regardless of the properties' initial state." + }, + "return_annotation": "Indicates if properties were archived successfully.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "property_object_type", + "hubspot_object_type" + ], + "description": "Specify the type of CRM object (e.g., 'contacts', 'companies') for which the properties should be archived.", + "endpoint_argument_name": "objectType" + }, + { + "name": "properties_list_to_archive", + "alternative_names": [ + "properties_batch", + "properties_array" + ], + "description": "A JSON array of properties to archive, each with a 'name' field specifying the property name.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/properties/{objectType}/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of properties", + "description": "Archive a provided list of properties. This method will return a 204 No Content response on success regardless of the initial state of the property (e.g. active, already archived, non-existent).", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to read or modify." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the property to read or modify." + } + }, + "required": [ + "name" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to read or modify.\"\n }\n },\n \"example\": {\n \"name\": \"my_custom_property\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/properties/{objectType}/groups/{groupName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_property_group", + "description": { + "tagline": "Retrieve details of a property group by its name.", + "detailed": "Use this tool to get detailed information about a property group identified by {groupName} within a specified object type in HubSpot CRM." + }, + "return_annotation": "Details of the specified property group.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_object" + ], + "description": "Specify the type of CRM object, such as 'contacts' or 'deals'.", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_group_name", + "alternative_names": [ + "group_name", + "property_identifier" + ], + "description": "The name of the property group to be retrieved.", + "endpoint_argument_name": "groupName" + } + ] + }, + "method": "GET", + "path": "/crm/v3/properties/{objectType}/groups/{groupName}", + "tags": [ + "Groups" + ], + "summary": "Read a property group", + "description": "Read a property group identified by {groupName}.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "groupName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/properties/{objectType}/groups/{groupName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_property_group", + "description": { + "tagline": "Delete a property group and move it to recycling bin.", + "detailed": "Use this tool to move a specified property group to the recycling bin in HubSpot CRM. Ideal when a property group is no longer needed and should be removed." + }, + "return_annotation": "Confirmation of the property group's deletion.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "entity_type", + "object_category" + ], + "description": "Specify the type of CRM object, such as 'contacts', 'companies', etc.", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_group_name", + "alternative_names": [ + "group_name_identifier", + "group_identifier" + ], + "description": "The name of the property group to delete. This identifies which group to move to the recycling bin in HubSpot CRM.", + "endpoint_argument_name": "groupName" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/properties/{objectType}/groups/{groupName}", + "tags": [ + "Groups" + ], + "summary": "Archive a property group", + "description": "Move a property group identified by {groupName} to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "groupName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/properties/{objectType}/groups/{groupName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_property_group", + "description": { + "tagline": "Update fields in a specified property group.", + "detailed": "This tool performs a partial update on a property group identified by {groupName} in HubSpot CRM. It overwrites the provided fields in the property group. Useful for modifying specific attributes within a property group without altering the entire group." + }, + "return_annotation": "Confirmation of the property group update.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "object_category" + ], + "description": "Specifies the type of object in HubSpot CRM (e.g., contacts, companies).", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_group_name", + "alternative_names": [ + "group_identifier", + "group_key" + ], + "description": "The unique name of the property group to be updated in HubSpot CRM.", + "endpoint_argument_name": "groupName" + }, + { + "name": "property_group_display_order", + "alternative_names": [ + "group_display_priority", + "group_sort_order" + ], + "description": "Set the display order of the property group. Use positive integers for ordering, or -1 to display after positive values.", + "endpoint_argument_name": "displayOrder" + }, + { + "name": "property_group_label", + "alternative_names": [ + "group_label", + "label_for_group" + ], + "description": "A human-readable label for the property group in HubSpot.", + "endpoint_argument_name": "label" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/properties/{objectType}/groups/{groupName}", + "tags": [ + "Groups" + ], + "summary": "Update a property group", + "description": "Perform a partial update of a property group identified by {groupName}. Provided fields will be overwritten.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "groupName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "displayOrder", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values." + }, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "label", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label that will be shown in HubSpot." + }, + "description": "A human-readable label that will be shown in HubSpot.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label that will be shown in HubSpot.\"\n }\n },\n \"example\": {\n \"displayOrder\": -1,\n \"label\": \"My Property Group\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/crm/v3/properties/{objectType}/{propertyName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_property", + "description": { + "tagline": "Retrieve CRM property details by name and type.", + "detailed": "This tool fetches details of a specific property from HubSpot CRM by providing the property name and object type. Use this tool to access property information when dealing with HubSpot CRM data." + }, + "return_annotation": "Details of the specified CRM property.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "type_of_object", + "crm_entity_type" + ], + "description": "Specify the CRM object type, such as 'contact' or 'company', to retrieve the property for.", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_name", + "alternative_names": [ + "property_identifier", + "property_title" + ], + "description": "The unique name of the property to retrieve. This should match the property name in HubSpot CRM.", + "endpoint_argument_name": "propertyName" + }, + { + "name": "property_specifications", + "alternative_names": [ + "property_details", + "property_attributes" + ], + "description": "Specify the details or attributes of the property to retrieve. Use a comma-separated list for multiple specifications.", + "endpoint_argument_name": "properties" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "show_only_archived", + "fetch_archived_only" + ], + "description": "Set to True to return only archived property results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/properties/{objectType}/{propertyName}", + "tags": [ + "Core" + ], + "summary": "Read a property", + "description": "Read a property identified by {propertyName}.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "propertyName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/properties/{objectType}/{propertyName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_property_hubspot_crm", + "description": { + "tagline": "Delete a property in HubSpot CRM and move it to the recycling bin.", + "detailed": "Use this tool to delete a specific property from the HubSpot CRM by specifying the object type and property name. This action moves the property to the recycling bin." + }, + "return_annotation": "Confirmation of property deletion.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "object_category" + ], + "description": "Specify the type of object in HubSpot CRM (e.g., 'contacts', 'companies').", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_name", + "alternative_names": [ + "property_identifier", + "property_key" + ], + "description": "The name of the property to delete, identified by its unique name within the object type.", + "endpoint_argument_name": "propertyName" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/properties/{objectType}/{propertyName}", + "tags": [ + "Core" + ], + "summary": "Archive a property", + "description": "Move a property identified by {propertyName} to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "propertyName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/properties/{objectType}/{propertyName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_property_value", + "description": { + "tagline": "Update specific fields of a CRM property partially.", + "detailed": "Use this tool to partially update specific fields of a CRM property identified by its name. Only the specified fields will be overwritten." + }, + "return_annotation": "Confirmation of property update success or failure.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "entity_type", + "crm_entity" + ], + "description": "Specify the type of CRM object (e.g., 'contacts', 'deals') to update.", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_identifier", + "alternative_names": [ + "property_id", + "property_key" + ], + "description": "The unique name of the CRM property to be updated.", + "endpoint_argument_name": "propertyName" + }, + { + "name": "property_update_details", + "alternative_names": [ + "property_update_data", + "property_update_info" + ], + "description": "A JSON object containing fields to update a CRM property, such as group name, visibility, options, display order, description, calculation formula, label, type, field type, and form field status.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/properties/{objectType}/{propertyName}", + "tags": [ + "Core" + ], + "summary": "Update a property", + "description": "Perform a partial update of a property identified by { propertyName }. Provided fields will be overwritten.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "propertyName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the property won't be visible and can't be used in HubSpot." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "hidden": { + "type": "boolean", + "description": "If true, the property won't be visible and can't be used in HubSpot." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property.", + "items": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "required": [ + "hidden", + "label", + "value" + ] + } + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property group the property belongs to.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the property won't be visible and can't be used in HubSpot.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of valid options for the property.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"calculationFormula\": {\n \"type\": \"string\",\n \"description\": \"Represents a formula that is used to compute a calculated property.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"bool\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"number\",\n \"phone_number\",\n \"string\"\n ]\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\",\n \"enum\": [\n \"booleancheckbox\",\n \"calculation_equation\",\n \"checkbox\",\n \"date\",\n \"file\",\n \"html\",\n \"number\",\n \"phonenumber\",\n \"radio\",\n \"select\",\n \"text\",\n \"textarea\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property can be used in a HubSpot form.\"\n }\n },\n \"example\": {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/properties/{objectType}/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_batch_properties", + "description": { + "tagline": "Fetches a batch of properties for a specified CRM object type.", + "detailed": "Use this tool to retrieve a list of properties for a given object type in the CRM. This can be useful when you need detailed information about multiple properties at once." + }, + "return_annotation": "List of requested properties for the specified object type.", + "arguments": [ + { + "name": "crm_object_type", + "alternative_names": [ + "object_category", + "entity_type" + ], + "description": "The type of CRM object for which properties are being read (e.g., contacts, deals).", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_request_details", + "alternative_names": [ + "batch_property_request", + "property_retrieval_request" + ], + "description": "A JSON object specifying properties to read. Includes 'archived', 'inputs' list, and 'dataSensitivity' level.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/properties/{objectType}/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of properties", + "description": "Read a provided list of properties.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to read or modify." + } + }, + "description": null + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the property to read or modify." + } + }, + "required": [ + "name" + ] + } + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + } + }, + "required": [ + "archived", + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"archived\",\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"archived\": {\n \"type\": \"boolean\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to read or modify.\"\n }\n },\n \"example\": {\n \"name\": \"my_custom_property\"\n }\n }\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"enum\": [\n \"non_sensitive\",\n \"sensitive\",\n \"highly_sensitive\"\n ]\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/properties/{objectType}/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_properties", + "description": { + "tagline": "Create a batch of properties for a specified object type in HubSpot.", + "detailed": "This tool facilitates the creation of multiple properties at once for any specified object type in HubSpot CRM, using the standard rules applied to individual property creation." + }, + "return_annotation": "Confirmation of batch property creation.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_object_type" + ], + "description": "Specifies the type of CRM object for which to create properties (e.g., contacts, deals, companies).", + "endpoint_argument_name": "objectType" + }, + { + "name": "property_batch_request", + "alternative_names": [ + "property_creation_payload", + "property_data_batch" + ], + "description": "A JSON object containing an array of property creations. Each entry should define attributes like name, label, type, and options.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/properties/{objectType}/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of properties", + "description": "Create a batch of properties using the same rules as when creating an individual property.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property. This field is required for enumerated properties." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "externalOptions": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties.", + "items": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "required": [ + "hidden", + "label", + "value" + ] + } + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "externalOptions": { + "type": "boolean", + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "required": [ + "fieldType", + "groupName", + "label", + "name", + "type" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"fieldType\",\n \"groupName\",\n \"label\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"bool\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"number\",\n \"phone_number\",\n \"string\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property can be used in a HubSpot form.\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"enum\": [\n \"non_sensitive\",\n \"sensitive\",\n \"highly_sensitive\"\n ]\n },\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property group the property belongs to.\"\n },\n \"referencedObjectType\": {\n \"type\": \"string\",\n \"description\": \"Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property name, which must be used when referencing the property via the API.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of valid options for the property. This field is required for enumerated properties.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"calculationFormula\": {\n \"type\": \"string\",\n \"description\": \"Represents a formula that is used to compute a calculated property.\"\n },\n \"hasUniqueValue\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property's value must be unique. Once set, this can't be changed.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\",\n \"enum\": [\n \"booleancheckbox\",\n \"calculation_equation\",\n \"checkbox\",\n \"date\",\n \"file\",\n \"html\",\n \"number\",\n \"phonenumber\",\n \"radio\",\n \"select\",\n \"text\",\n \"textarea\"\n ]\n },\n \"externalOptions\": {\n \"type\": \"boolean\",\n \"description\": \"Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false.\"\n }\n },\n \"example\": {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/properties/{objectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_properties", + "description": { + "tagline": "Retrieve all properties for a HubSpot object type.", + "detailed": "Use this tool to read all existing properties for a specified object type in HubSpot CRM. It provides property details relevant to the chosen object type within a HubSpot account." + }, + "return_annotation": "All existing properties for a specified HubSpot object type.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "item_type" + ], + "description": "Specifies the HubSpot object type (e.g., contact, deal) to retrieve properties for.", + "endpoint_argument_name": "objectType" + }, + { + "name": "selected_properties", + "alternative_names": [ + "specified_properties", + "property_fields" + ], + "description": "A comma-separated list of specific properties to retrieve for the object type. Leave empty to retrieve all properties.", + "endpoint_argument_name": "properties" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_only_archived", + "fetch_archived_properties" + ], + "description": "Set to true to return only results that have been archived. Otherwise, return all properties.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/properties/{objectType}", + "tags": [ + "Core" + ], + "summary": "Read all properties", + "description": "Read all existing properties for the specified object type and HubSpot account.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/properties/{objectType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_crm_property", + "description": { + "tagline": "Create a new property for a specified object type in HubSpot CRM.", + "detailed": "This tool creates and returns a new property for the specified object type in HubSpot CRM. It should be used when you need to add a custom property to an object such as a contact, company, or deal in HubSpot." + }, + "return_annotation": "Creates a new property for a specified object type in HubSpot CRM.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "entity_type", + "crm_object_type" + ], + "description": "Specify the object type to which the new property will be added, such as contact, company, or deal.", + "endpoint_argument_name": "objectType" + }, + { + "name": "new_property_request", + "alternative_names": [ + "property_creation_data", + "property_attributes" + ], + "description": "A JSON object defining attributes for the new HubSpot CRM property, including type, label, options, and more.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/properties/{objectType}", + "tags": [ + "Core" + ], + "summary": "Create a property", + "description": "Create and return a copy of a new property for the specified object type.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property. This field is required for enumerated properties." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "externalOptions": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties.", + "items": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "required": [ + "hidden", + "label", + "value" + ] + } + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "externalOptions": { + "type": "boolean", + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "required": [ + "fieldType", + "groupName", + "label", + "name", + "type" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"fieldType\",\n \"groupName\",\n \"label\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"bool\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"number\",\n \"phone_number\",\n \"string\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property can be used in a HubSpot form.\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"enum\": [\n \"non_sensitive\",\n \"sensitive\",\n \"highly_sensitive\"\n ]\n },\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property group the property belongs to.\"\n },\n \"referencedObjectType\": {\n \"type\": \"string\",\n \"description\": \"Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property name, which must be used when referencing the property via the API.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of valid options for the property. This field is required for enumerated properties.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"calculationFormula\": {\n \"type\": \"string\",\n \"description\": \"Represents a formula that is used to compute a calculated property.\"\n },\n \"hasUniqueValue\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property's value must be unique. Once set, this can't be changed.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\",\n \"enum\": [\n \"booleancheckbox\",\n \"calculation_equation\",\n \"checkbox\",\n \"date\",\n \"file\",\n \"html\",\n \"number\",\n \"phonenumber\",\n \"radio\",\n \"select\",\n \"text\",\n \"textarea\"\n ]\n },\n \"externalOptions\": {\n \"type\": \"boolean\",\n \"description\": \"Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false.\"\n }\n },\n \"example\": {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/properties/{objectType}/groups", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_property_groups", + "description": { + "tagline": "Retrieve HubSpot CRM property groups for a specified object type.", + "detailed": "This tool retrieves all existing property groups for a specified object type within a HubSpot account. Use it to access property group information for organizing and managing CRM data effectively." + }, + "return_annotation": "List of property groups for a specified HubSpot object type.", + "arguments": [ + { + "name": "hubspot_object_type", + "alternative_names": [ + "crm_object_type", + "object_type_in_hubspot" + ], + "description": "Specify the HubSpot object type to retrieve property groups, such as 'contacts', 'companies', or 'deals'.", + "endpoint_argument_name": "objectType" + } + ] + }, + "method": "GET", + "path": "/crm/v3/properties/{objectType}/groups", + "tags": [ + "Groups" + ], + "summary": "Read all property groups", + "description": "Read all existing property groups for the specified object type and HubSpot account.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/properties/{objectType}/groups", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_property_group", + "description": { + "tagline": "Create a new property group in HubSpot CRM.", + "detailed": "This tool creates and returns a new property group for a specified object type in HubSpot CRM. Use it when you need to organize CRM properties into groups." + }, + "return_annotation": "A copy of the newly created property group.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "crm_object_type", + "entity_type" + ], + "description": "Specifies the CRM object type for the property group (e.g., contacts, companies).", + "endpoint_argument_name": "objectType" + }, + { + "name": "internal_property_group_name", + "alternative_names": [ + "property_group_identifier", + "property_group_internal_name" + ], + "description": "The unique name used internally to reference the property group via the API.", + "endpoint_argument_name": "name" + }, + { + "name": "property_group_label", + "alternative_names": [ + "group_label", + "label_for_group" + ], + "description": "A human-readable label for the property group, displayed in HubSpot.", + "endpoint_argument_name": "label" + }, + { + "name": "property_group_display_order", + "alternative_names": [ + "group_display_order", + "display_order_value" + ], + "description": "Defines the display order of the property group, with lowest positive integers displayed first. Use -1 to display after positive values.", + "endpoint_argument_name": "displayOrder" + } + ] + }, + "method": "POST", + "path": "/crm/v3/properties/{objectType}/groups", + "tags": [ + "Groups" + ], + "summary": "Create a property group", + "description": "Create and return a copy of a new property group.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "description": "The internal property group name, which must be used when referencing the property group via the API.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "schema_required": true + }, + { + "name": "displayOrder", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values." + }, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "label", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label that will be shown in HubSpot." + }, + "description": "A human-readable label that will be shown in HubSpot.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"label\",\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property group name, which must be used when referencing the property group via the API.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label that will be shown in HubSpot.\"\n }\n },\n \"example\": {\n \"displayOrder\": -1,\n \"label\": \"My Property Group\",\n \"name\": \"mypropertygroup\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/crm/v3/property-validations/{objectTypeId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_property_validation_rules", + "description": { + "tagline": "Retrieve validation rules for properties of a given object in HubSpot CRM.", + "detailed": "Use this tool to get detailed validation rules for all properties associated with a specified object type ID in HubSpot CRM. This can be helpful for understanding constraints and rules applied to object properties." + }, + "return_annotation": "Validation rules for properties of the specified object.", + "arguments": [ + { + "name": "object_type_id", + "alternative_names": [ + "object_id", + "entity_type_id" + ], + "description": "The unique identifier for the object type in HubSpot CRM whose property validation rules you want to retrieve. This is a string value.", + "endpoint_argument_name": "objectTypeId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/property-validations/{objectTypeId}", + "tags": [ + "Public_Property_Validations" + ], + "summary": "Read all property validation rules for an object", + "description": "Read all properties with validation rules for a given object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/property-validations/{objectTypeId}/{propertyName}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_property_validation", + "description": { + "tagline": "Retrieve validation rules for a specific property in HubSpot CRM.", + "detailed": "This tool is used to read the validation rules of a property identified by {propertyName} within a specified object type in HubSpot CRM. It helps to understand the constraints and validations applied to a property." + }, + "return_annotation": "Validation rules for the specified property.", + "arguments": [ + { + "name": "object_type_id", + "alternative_names": [ + "entity_type_id", + "crm_object_id" + ], + "description": "The unique identifier for the object type in HubSpot CRM, such as \"contacts\" or \"deals\".", + "endpoint_argument_name": "objectTypeId" + }, + { + "name": "property_name", + "alternative_names": [ + "property_identifier", + "property_key" + ], + "description": "The name of the property whose validation rules you want to retrieve in HubSpot CRM. It must match exactly to identify the property correctly.", + "endpoint_argument_name": "propertyName" + } + ] + }, + "method": "GET", + "path": "/crm/v3/property-validations/{objectTypeId}/{propertyName}", + "tags": [ + "Public_Property_Validations" + ], + "summary": "Read validation rules for a property", + "description": "Read a property's validation rules identified by {propertyName}.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "propertyName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_quotes_batch", + "description": { + "tagline": "Archive a batch of quotes in HubSpot CRM.", + "detailed": "Use this tool to archive multiple quotes in HubSpot CRM by providing their IDs. It should be called when there's a need to bulk archive quotes to manage CRM records efficiently." + }, + "return_annotation": "Confirmation of batch quotes archiving.", + "arguments": [ + { + "name": "quote_ids_batch", + "alternative_names": [ + "batch_of_quote_ids", + "quotes_id_list" + ], + "description": "A JSON array of objects, each containing an `id` field representing the quote ID to be archived. Use this to specify multiple quotes you want to archive in a single request.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of quotes by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/quotes_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_quotes_page", + "description": { + "tagline": "Retrieve a page of quotes with specified properties.", + "detailed": "Use this tool to read a page of quotes from HubSpot CRM. You can control the details returned by specifying properties through query parameters." + }, + "return_annotation": "A page of quotes and their properties.", + "arguments": [ + { + "name": "results_limit", + "alternative_names": [ + "max_results_per_page", + "page_size" + ], + "description": "The maximum number of quote results to display per page. Accepts an integer value.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "cursor_token" + ], + "description": "The token to identify the last read resource for pagination. Use it to get the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "quote_properties_to_return", + "alternative_names": [ + "requested_quote_properties", + "quote_fields_to_include" + ], + "description": "List the properties to retrieve for each quote. Only present properties will be returned.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "List of properties to return with their history. Reduces max quotes per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_ids_for_object_types", + "alternative_names": [ + "get_associated_ids_for_objects", + "fetch_associated_object_ids" + ], + "description": "A list of object types to retrieve associated IDs for. Non-existing associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_only_results", + "only_archived_results" + ], + "description": "Set to true to return only archived results. False to include active results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/quotes", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of quotes. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of quotes that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of quotes that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_quote", + "description": { + "tagline": "Create a new quote in HubSpot CRM.", + "detailed": "Use this tool to create a new quote in HubSpot CRM with specified properties. It returns the created quote, including its ID." + }, + "return_annotation": "Returns a copy of the created quote with its ID.", + "arguments": [ + { + "name": "quote_details", + "alternative_names": [ + "quote_properties", + "quote_data" + ], + "description": "A JSON object containing details for the new quote, including properties and associations.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a quote with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard quotes is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/quotes/{quoteId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_quote_by_id", + "description": { + "tagline": "Retrieve details of a quote by its ID.", + "detailed": "Fetches a quote from HubSpot CRM using its ID or a unique property value. Allows control over returned properties." + }, + "return_annotation": "Details of the specified quote.", + "arguments": [ + { + "name": "quote_id", + "alternative_names": [ + "quote_identifier", + "quote_reference_id" + ], + "description": "The ID or unique property value of the quote to be retrieved. This identifies the specific quote in HubSpot CRM.", + "endpoint_argument_name": "quoteId" + }, + { + "name": "included_properties", + "alternative_names": [ + "requested_properties", + "desired_properties" + ], + "description": "List of properties to be returned in the response. If a property is not present, it will be ignored. Input should be an array of strings.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_history" + ], + "description": "Comma-separated list of properties to return with their value history. Ignored if not present.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "alternative_names": [ + "get_linked_object_types", + "fetch_connected_object_types" + ], + "description": "List of object types to retrieve associated IDs for; ignored if non-existent.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "property_name", + "unique_id_property" + ], + "description": "The property name with unique values for the quote object, used in the retrieval process.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_return_archived", + "alternative_names": [ + "archive_filter", + "show_archived_only" + ], + "description": "Set to true to only return results that have been archived for the quote.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/quotes/{quoteId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "quoteId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/quotes/{quoteId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_quote", + "description": { + "tagline": "Archive a quote by moving it to the recycling bin.", + "detailed": "This tool archives a quote in HubSpot CRM, identified by its `quoteId`, by moving it to the recycling bin. Use this tool when you need to delete a quote temporarily." + }, + "return_annotation": "Confirmation of the quote being archived.", + "arguments": [ + { + "name": "quote_identifier", + "alternative_names": [ + "quote_id", + "quote_reference" + ], + "description": "The unique identifier for the quote to be archived in HubSpot CRM.", + "endpoint_argument_name": "quoteId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/quotes/{quoteId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{quoteId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "quoteId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/quotes/{quoteId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_quote_information", + "description": { + "tagline": "Update a quote's details in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update of a quote in HubSpot CRM identified by `quoteId` or a unique property value. It allows overwriting specific property values, but read-only or invalid properties will cause an error. Properties can be cleared by passing an empty string." + }, + "return_annotation": "Confirmation of the quote update operation.", + "arguments": [ + { + "name": "quote_identifier", + "alternative_names": [ + "quote_id", + "hubspot_quote_id" + ], + "description": "The identifier of the quote to be updated. This can be the internal ID or a unique property value specified by `idProperty`.", + "endpoint_argument_name": "quoteId" + }, + { + "name": "quote_properties_update", + "alternative_names": [ + "quote_properties_modification", + "quote_property_edits" + ], + "description": "JSON object of key-value pairs to update specific properties of a quote. Clears properties by passing an empty string.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_with_unique_values" + ], + "description": "The name of a property with unique values for identifying the quote object. Used instead of `quoteId`.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/quotes/{quoteId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{quoteId}`or optionally a unique property value as specified by the `idProperty` query param. `{quoteId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "quoteId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_quote_batch", + "description": { + "tagline": "Update a batch of quotes using internal ID or property values.", + "detailed": "Use this tool to update multiple quotes at once in the CRM. It should be called when you need to modify details of several quotes by their internal IDs or unique property values." + }, + "return_annotation": "Updates confirmation for batch of quotes.", + "arguments": [ + { + "name": "quote_update_requests", + "alternative_names": [ + "quotes_update_payloads", + "batch_quote_updates" + ], + "description": "A JSON array of quote update objects, each containing `id`, `properties`, `idProperty`, and an optional `objectWriteTraceId`. Each object specifies which quote to update and the new values.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of quotes by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_or_update_quotes", + "description": { + "tagline": "Create or update quote records in HubSpot CRM.", + "detailed": "This tool is used to create or update quote records in HubSpot CRM based on a unique property value specified by `idProperty`. Use it when you need to ensure quotes are updated or added to the CRM system efficiently." + }, + "return_annotation": "Confirms creation or update of quotes in CRM.", + "arguments": [ + { + "name": "quote_records_list", + "alternative_names": [ + "quotes_batch_data", + "quote_records_payload" + ], + "description": "A list of quote objects with unique identifiers and properties for batch creation or update. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of quotes by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_quotes", + "description": { + "tagline": "Creates a batch of quotes in HubSpot CRM.", + "detailed": "This tool is used to create multiple quotes at once using HubSpot CRM's batch creation endpoint. Ideal for automating the quote generation process for multiple clients or deals." + }, + "return_annotation": "Detail about the batch of created quotes.", + "arguments": [ + { + "name": "quotes_batch_data", + "alternative_names": [ + "quotes_creation_payload", + "bulk_quotes_input" + ], + "description": "A structured JSON object containing an array of quote details to create. Each quote entry should include associations, objectWriteTraceId, and custom properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of quotes", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_quotes_in_hubspot", + "description": { + "tagline": "Search for quotes in HubSpot CRM.", + "detailed": "Use this tool to perform a search for quotes stored in HubSpot CRM. Useful for retrieving information about sales quotes based on specific criteria or parameters." + }, + "return_annotation": "Results of the HubSpot quotes search query.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "search_parameters", + "quote_query_parameters" + ], + "description": "JSON object containing the search criteria for quotes. Includes query string, limit, paging, sorting options, properties to include, and filter groups.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/quotes/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_quotes_batch", + "description": { + "tagline": "Retrieve multiple quotes by ID or custom property.", + "detailed": "This tool retrieves multiple quote records by their IDs or a custom unique value property. It should be called when you need to access specific quotes in batch format from the HubSpot CRM." + }, + "return_annotation": "Batch of quotes retrieved by IDs or custom properties.", + "arguments": [ + { + "name": "quote_retrieval_criteria", + "alternative_names": [ + "retrieve_criteria", + "quote_batch_retrieval_params" + ], + "description": "JSON object specifying properties to retrieve quotes by ID or custom property. Use 'idProperty' for custom property and 'inputs' for IDs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "archived_results_only", + "alternative_names": [ + "only_archived_quotes", + "return_archived_results" + ], + "description": "Specify `true` to return only archived results; `false` to include non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/quotes/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of quotes by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.quotes.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm-object-schemas/v3/schemas_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_crm_object_schemas", + "description": { + "tagline": "Retrieve HubSpot CRM object schemas.", + "detailed": "Call this tool to fetch all object schemas from the HubSpot CRM, which can help understand data structure within the CRM." + }, + "return_annotation": "List of HubSpot CRM object schemas.", + "arguments": [ + { + "name": "return_archived_only", + "alternative_names": [ + "include_archived_results", + "fetch_archived_items" + ], + "description": "Set to True to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm-object-schemas/v3/schemas", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + "crm.schemas.custom.read", + "crm.objects.custom.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm-object-schemas/v3/schemas_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_crm_object_schema", + "description": { + "tagline": "Create a new CRM object schema in HubSpot.", + "detailed": "Use this tool to create a new object schema in HubSpot's CRM. This is useful when you need to define a new structure for CRM objects tailored to specific business needs." + }, + "return_annotation": "Confirmation of CRM object schema creation.", + "arguments": [ + { + "name": "object_schema_definition", + "alternative_names": [ + "schema_definition", + "crm_schema_definition" + ], + "description": "JSON object defining the CRM object schema, including properties, associations, and display settings.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm-object-schemas/v3/schemas", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.custom.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "secondaryDisplayProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type." + }, + "requiredProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of properties that should be **required** when creating an object of this type." + }, + "searchableProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search." + }, + "primaryDisplayProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique name for this object. For internal use only." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "associatedObjects": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Associations defined for this object type." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "optionSortStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DISPLAY_ORDER", + "ALPHABETICAL" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property options will be sorted in the HubSpot UI." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property will display the currency symbol in the HubSpot UI." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "string", + "number", + "date", + "datetime", + "enumeration", + "bool" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property can be used in a HubSpot form." + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group this property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal." + }, + "textDisplayHint": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "unformatted_single_line", + "multi_line", + "email", + "phone_number", + "domain_name", + "ip_address", + "physical_address", + "postal_code" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how text properties are formatted in the HubSpot UI" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property from the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of available options for the property. This field is only required for enumerated properties." + }, + "searchableInGlobalSearch": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow users to search for information entered to this field (limited to 3 properties)" + }, + "numberDisplayHint": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "unformatted", + "formatted", + "currency", + "percentage", + "duration", + "probability" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how numeric properties are formatted in the HubSpot UI" + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + } + }, + "description": "Properties defined for this object type." + }, + "labels": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "plural": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "inner_properties": null, + "description": "Singular and plural labels for the object. Used in CRM display." + } + }, + "inner_properties": null, + "description": "Object schema definition, including properties and associations." + }, + "description": "Object schema definition, including properties and associations.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Defines a new object type, its properties, and associations.", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for this object. For internal use only." + }, + "description": { + "type": "string" + }, + "associatedObjects": { + "type": "array", + "description": "Associations defined for this object type.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "type": "object", + "description": "Defines a property to create.", + "properties": { + "hidden": { + "type": "boolean" + }, + "optionSortStrategy": { + "type": "string", + "description": "Controls how the property options will be sorted in the HubSpot UI.", + "enum": [ + "DISPLAY_ORDER", + "ALPHABETICAL" + ] + }, + "displayOrder": { + "type": "integer", + "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether the property will display the currency symbol in the HubSpot UI." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "string", + "number", + "date", + "datetime", + "enumeration", + "bool" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether the property can be used in a HubSpot form." + }, + "groupName": { + "type": "string", + "description": "The name of the group this property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal." + }, + "textDisplayHint": { + "type": "string", + "description": "Controls how text properties are formatted in the HubSpot UI", + "enum": [ + "unformatted_single_line", + "multi_line", + "email", + "phone_number", + "domain_name", + "ip_address", + "physical_address", + "postal_code" + ] + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property from the API." + }, + "options": { + "type": "array", + "description": "A list of available options for the property. This field is only required for enumerated properties.", + "items": { + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "required": [ + "hidden", + "label", + "value" + ] + } + }, + "searchableInGlobalSearch": { + "type": "boolean", + "description": "Allow users to search for information entered to this field (limited to 3 properties)" + }, + "numberDisplayHint": { + "type": "string", + "description": "Controls how numeric properties are formatted in the HubSpot UI", + "enum": [ + "unformatted", + "formatted", + "currency", + "percentage", + "duration", + "probability" + ] + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + } + }, + "required": [ + "fieldType", + "label", + "name", + "type" + ] + } + }, + "labels": { + "type": "object", + "description": "Singular and plural labels for the object. Used in CRM display.", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + } + } + }, + "required": [ + "associatedObjects", + "labels", + "name", + "properties", + "requiredProperties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"Object schema definition, including properties and associations.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"associatedObjects\",\n \"labels\",\n \"name\",\n \"properties\",\n \"requiredProperties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"secondaryDisplayProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"requiredProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of properties that should be **required** when creating an object of this type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"searchableProperties\": {\n \"type\": \"array\",\n \"description\": \"Names of properties that will be indexed for this object type in by HubSpot's product search.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"primaryDisplayProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"A unique name for this object. For internal use only.\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"associatedObjects\": {\n \"type\": \"array\",\n \"description\": \"Associations defined for this object type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Properties defined for this object type.\",\n \"items\": {\n \"required\": [\n \"fieldType\",\n \"label\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"optionSortStrategy\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property options will be sorted in the HubSpot UI.\",\n \"enum\": [\n \"DISPLAY_ORDER\",\n \"ALPHABETICAL\"\n ]\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"showCurrencySymbol\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property will display the currency symbol in the HubSpot UI.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"string\",\n \"number\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"bool\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property can be used in a HubSpot form.\"\n },\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the group this property belongs to.\"\n },\n \"referencedObjectType\": {\n \"type\": \"string\",\n \"description\": \"Defines the options this property will return, e.g. OWNER would return name of users on the portal.\"\n },\n \"textDisplayHint\": {\n \"type\": \"string\",\n \"description\": \"Controls how text properties are formatted in the HubSpot UI\",\n \"enum\": [\n \"unformatted_single_line\",\n \"multi_line\",\n \"email\",\n \"phone_number\",\n \"domain_name\",\n \"ip_address\",\n \"physical_address\",\n \"postal_code\"\n ]\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property name, which must be used when referencing the property from the API.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of available options for the property. This field is only required for enumerated properties.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"searchableInGlobalSearch\": {\n \"type\": \"boolean\",\n \"description\": \"Allow users to search for information entered to this field (limited to 3 properties)\"\n },\n \"numberDisplayHint\": {\n \"type\": \"string\",\n \"description\": \"Controls how numeric properties are formatted in the HubSpot UI\",\n \"enum\": [\n \"unformatted\",\n \"formatted\",\n \"currency\",\n \"percentage\",\n \"duration\",\n \"probability\"\n ]\n },\n \"hasUniqueValue\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property's value must be unique. Once set, this can't be changed.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\"\n }\n },\n \"description\": \"Defines a property to create.\",\n \"example\": {\n \"label\": \"My object property\",\n \"type\": \"enumeration\",\n \"fieldType\": \"select\",\n \"groupName\": \"my_object_information\",\n \"displayOrder\": 2,\n \"hasUniqueValue\": false,\n \"options\": [\n {\n \"label\": \"Option A\",\n \"description\": \"Choice number one\",\n \"value\": \"A\",\n \"displayOrder\": 1\n },\n {\n \"label\": \"Option B\",\n \"description\": \"Choice number two\",\n \"value\": \"B\",\n \"displayOrder\": 2\n }\n ]\n }\n }\n },\n \"labels\": {\n \"type\": \"object\",\n \"properties\": {\n \"plural\": {\n \"type\": \"string\",\n \"description\": \"The word for multiple objects. (There\\u2019s no way to change this later.)\"\n },\n \"singular\": {\n \"type\": \"string\",\n \"description\": \"The word for one object. (There\\u2019s no way to change this later.)\"\n }\n },\n \"description\": \"Singular and plural labels for the object. Used in CRM display.\",\n \"example\": {\n \"singular\": \"My object\",\n \"plural\": \"My objects\"\n }\n }\n },\n \"description\": \"Defines a new object type, its properties, and associations.\",\n \"example\": {\n \"name\": \"my_object\",\n \"labels\": {\n \"singular\": \"My object\",\n \"plural\": \"My objects\"\n },\n \"primaryDisplayProperty\": \"my_object_property\",\n \"requiredProperties\": [\n \"my_object_property\"\n ],\n \"properties\": [\n {\n \"name\": \"my_object_property\",\n \"label\": \"My object property\",\n \"isPrimaryDisplayLabel\": true\n }\n ],\n \"associatedObjects\": [\n \"CONTACT\"\n ],\n \"metaType\": \"PORTAL_SPECIFIC\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm-object-schemas/v3/schemas/{objectType}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_crm_object_schema", + "description": { + "tagline": "Retrieve a CRM object schema by its type.", + "detailed": "Use this tool to get detailed information about a specific CRM object schema by providing the object type. This helps in understanding the structure and properties of the CRM object within HubSpot." + }, + "return_annotation": "Information about the specified CRM object schema.", + "arguments": [ + { + "name": "object_type", + "alternative_names": [ + "schema_id", + "type_identifier" + ], + "description": "The fully qualified name or object type ID of the CRM schema to retrieve.", + "endpoint_argument_name": "objectType" + } + ] + }, + "method": "GET", + "path": "/crm-object-schemas/v3/schemas/{objectType}", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + "crm.schemas.custom.read", + "crm.objects.custom.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm-object-schemas/v3/schemas/{objectType}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_crm_object_schema", + "description": { + "tagline": "Delete a CRM object schema in HubSpot.", + "detailed": "This tool deletes a specified CRM object schema in HubSpot. Use it when you need to remove an existing schema, ensuring it's no longer accessible or in use." + }, + "return_annotation": "Confirmation of CRM object schema deletion.", + "arguments": [ + { + "name": "object_type_identifier", + "alternative_names": [ + "schema_type_id", + "object_type_name" + ], + "description": "The fully qualified name or object type ID of the schema to delete.", + "endpoint_argument_name": "objectType" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "show_only_archived", + "include_archived_only" + ], + "description": "Set to True to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "DELETE", + "path": "/crm-object-schemas/v3/schemas/{objectType}", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.custom.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm-object-schemas/v3/schemas/{objectType}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_crm_object_schema", + "description": { + "tagline": "Update a CRM object's schema in HubSpot.", + "detailed": "This tool updates the schema of a specified CRM object type in HubSpot. Call this tool when you need to modify the structure or attributes of an existing CRM object schema." + }, + "return_annotation": "Updates the CRM object schema and returns confirmation details.", + "arguments": [ + { + "name": "object_type_identifier", + "alternative_names": [ + "schema_object_type", + "crm_object_type_id" + ], + "description": "Fully qualified name or object type ID of your CRM schema for updates.", + "endpoint_argument_name": "objectType" + }, + { + "name": "secondary_display_properties", + "alternative_names": [ + "secondary_properties_names", + "additional_display_properties" + ], + "description": "Names of secondary properties displayed on the HubSpot record page for this object type.", + "endpoint_argument_name": "secondaryDisplayProperties" + }, + { + "name": "required_properties", + "alternative_names": [ + "mandatory_properties", + "compulsory_properties" + ], + "description": "List of property names that must be provided when creating an object of this type in HubSpot.", + "endpoint_argument_name": "requiredProperties" + }, + { + "name": "searchable_properties", + "alternative_names": [ + "indexable_properties", + "search_index_properties" + ], + "description": "List of property names to be indexed for HubSpot's product search, enhancing searchability of the CRM object type.", + "endpoint_argument_name": "searchableProperties" + }, + { + "name": "primary_display_property", + "alternative_names": [ + "primary_property_name", + "main_display_property" + ], + "description": "The primary property's name for this object, displayed prominently on the HubSpot record page.", + "endpoint_argument_name": "primaryDisplayProperty" + }, + { + "name": "object_description", + "alternative_names": [ + "schema_description", + "entity_description" + ], + "description": "A description for the CRM object schema, providing details about its purpose or usage in HubSpot.", + "endpoint_argument_name": "description" + }, + { + "name": "plural_labels", + "alternative_names": [ + "multiple_object_words", + "object_plural_names" + ], + "description": "Specify the word representing multiple instances of the object type. This value is permanent and cannot be changed after setting.", + "endpoint_argument_name": "labels.plural" + }, + { + "name": "object_singular_name", + "alternative_names": [ + "single_object_label", + "singular_label" + ], + "description": "The word representing a single object. This cannot be changed later.", + "endpoint_argument_name": "labels.singular" + }, + { + "name": "clear_description", + "alternative_names": [ + "reset_description", + "empty_description" + ], + "description": "Set to true to clear the description field for the object type schema.", + "endpoint_argument_name": "clearDescription" + }, + { + "name": "restorable", + "alternative_names": [ + "is_restorable", + "object_restorable" + ], + "description": "Indicates if the object can be restored after deletion. Accepts a boolean value.", + "endpoint_argument_name": "restorable" + } + ] + }, + "method": "PATCH", + "path": "/crm-object-schemas/v3/schemas/{objectType}", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.custom.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "secondaryDisplayProperties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type." + }, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "requiredProperties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of properties that should be **required** when creating an object of this type." + }, + "description": "The names of properties that should be **required** when creating an object of this type.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "searchableProperties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search." + }, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "clearDescription", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "primaryDisplayProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "schema_required": false + }, + { + "name": "description", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "restorable", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "labels.plural", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "schema_required": false + }, + { + "name": "labels.singular", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for one object. (There\u2019s no way to change this later.)" + }, + "description": "The word for one object. (There\u2019s no way to change this later.)", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"Attributes to update in your schema.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"secondaryDisplayProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"requiredProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of properties that should be **required** when creating an object of this type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"searchableProperties\": {\n \"type\": \"array\",\n \"description\": \"Names of properties that will be indexed for this object type in by HubSpot's product search.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"clearDescription\": {\n \"type\": \"boolean\"\n },\n \"primaryDisplayProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"restorable\": {\n \"type\": \"boolean\"\n },\n \"labels\": {\n \"type\": \"object\",\n \"properties\": {\n \"plural\": {\n \"type\": \"string\",\n \"description\": \"The word for multiple objects. (There\\u2019s no way to change this later.)\"\n },\n \"singular\": {\n \"type\": \"string\",\n \"description\": \"The word for one object. (There\\u2019s no way to change this later.)\"\n }\n },\n \"description\": \"Singular and plural labels for the object. Used in CRM display.\",\n \"example\": {\n \"singular\": \"My object\",\n \"plural\": \"My objects\"\n }\n }\n },\n \"description\": \"Defines attributes to update on an object type.\",\n \"example\": {\n \"primaryDisplayProperty\": \"my_object_property\",\n \"requiredProperties\": [\n \"my_object_property\"\n ],\n \"searchableProperties\": [\n \"my_object_property\"\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm-object-schemas/v3/schemas/{objectType}/associations_createAssociation", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_crm_object_association", + "description": { + "tagline": "Create an association between HubSpot CRM objects.", + "detailed": "This tool creates an association between specified HubSpot CRM objects. Use it when you need to link different CRM objects (like contacts and companies) within the HubSpot platform." + }, + "return_annotation": "Information about the new CRM object association created.", + "arguments": [ + { + "name": "crm_object_type_schema", + "alternative_names": [ + "crm_object_type_id", + "crm_object_schema" + ], + "description": "Fully qualified name or object type ID of your CRM object schema to create the association.", + "endpoint_argument_name": "objectType" + }, + { + "name": "primary_object_type_id", + "alternative_names": [ + "source_object_type_id", + "main_object_type_id" + ], + "description": "ID of the primary object type to link from in the CRM system.", + "endpoint_argument_name": "fromObjectTypeId" + }, + { + "name": "target_object_type_id", + "alternative_names": [ + "destination_object_type_id", + "link_to_object_type_id" + ], + "description": "ID of the target object type to link to in the CRM association.", + "endpoint_argument_name": "toObjectTypeId" + }, + { + "name": "association_name", + "alternative_names": [ + "link_name", + "connection_name" + ], + "description": "A unique name for the association between CRM objects. This helps identify the link.", + "endpoint_argument_name": "name" + } + ] + }, + "method": "POST", + "path": "/crm-object-schemas/v3/schemas/{objectType}/associations", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.custom.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "fromObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the primary object type to link from." + }, + "description": "ID of the primary object type to link from.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "ID of the primary object type to link from." + }, + "schema_required": true + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique name for this association." + }, + "description": "A unique name for this association.", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "A unique name for this association." + }, + "schema_required": false + }, + { + "name": "toObjectTypeId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the target object type to link to." + }, + "description": "ID of the target object type to link to.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "ID of the target object type to link to." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"description\": \"Attributes that define the association.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"fromObjectTypeId\",\n \"toObjectTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"fromObjectTypeId\": {\n \"type\": \"string\",\n \"description\": \"ID of the primary object type to link from.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"A unique name for this association.\"\n },\n \"toObjectTypeId\": {\n \"type\": \"string\",\n \"description\": \"ID of the target object type to link to.\"\n }\n },\n \"description\": \"Defines an association between two object types.\",\n \"example\": {\n \"fromObjectTypeId\": \"2-123456\",\n \"toObjectTypeId\": \"contact\",\n \"name\": \"my_object_to_contact\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "delete-/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}_archiveAssociation", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_crm_association", + "description": { + "tagline": "Remove an association between CRM object schemas.", + "detailed": "This tool is used to delete an association between specified CRM object schemas in HubSpot. It should be called when there is a need to remove or archive a link between two object types." + }, + "return_annotation": "Confirmation of association deletion.", + "arguments": [ + { + "name": "schema_object_type", + "alternative_names": [ + "object_type_identifier", + "schema_fqn" + ], + "description": "The fully qualified name or object type ID of your schema to identify which CRM object to target.", + "endpoint_argument_name": "objectType" + }, + { + "name": "association_id", + "alternative_names": [ + "association_identifier", + "association_unique_id" + ], + "description": "Unique ID of the association to be removed.", + "endpoint_argument_name": "associationIdentifier" + } + ] + }, + "method": "DELETE", + "path": "/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}", + "tags": [ + "Core" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.custom.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "associationIdentifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the association to remove." + }, + "description": "Unique ID of the association to remove.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_hubspot_object_records", + "description": { + "tagline": "Retrieve HubSpot CRM records by ID or custom property.", + "detailed": "Use this tool to retrieve HubSpot CRM records by specifying record IDs or by using a custom unique value property with the `idProperty` parameter." + }, + "return_annotation": "Records retrieved by ID or custom property.", + "arguments": [ + { + "name": "record_retrieval_body", + "alternative_names": [ + "record_fetch_request_body", + "hubspot_crm_retrieval_body" + ], + "description": "JSON object for specifying the IDs or custom properties to retrieve records. Include properties, propertiesWithHistory, idProperty (if using custom unique value), and inputs to specify the required records.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_results_only", + "fetch_archived_only" + ], + "description": "Indicate if only archived records should be returned when retrieving HubSpot CRM data.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of services by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_services_batch", + "description": { + "tagline": "Update multiple service records in HubSpot CRM.", + "detailed": "Use this tool to update a batch of service records in the HubSpot CRM by their internal IDs or unique property values. Suitable for synchronizing or modifying multiple records efficiently." + }, + "return_annotation": "Details of batch update success or failure.", + "arguments": [ + { + "name": "service_update_requests", + "alternative_names": [ + "batch_update_requests", + "service_update_payload" + ], + "description": "JSON array of objects with service record IDs and properties to update. Each object must include `id`, `idProperty`, `objectWriteTraceId`, and `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of services by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "hubspot_crm_upsert_records", + "description": { + "tagline": "Create or update unique records in HubSpot CRM.", + "detailed": "This tool allows for the creation or update of CRM records in HubSpot, identified by a unique property. Use it when you need to batch upload or modify records based on a unique identifier." + }, + "return_annotation": "Confirms the creation or update of records in HubSpot CRM.", + "arguments": [ + { + "name": "records_to_upsert", + "alternative_names": [ + "upsert_records_payload", + "batch_records_input" + ], + "description": "JSON array containing records to upsert, each with unique properties: `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of services by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "hubspot_search_custom_objects", + "description": { + "tagline": "Search for custom objects in HubSpot CRM.", + "detailed": "Use this tool to search for custom objects within the HubSpot CRM. It should be called when you need to retrieve specific custom object data based on certain criteria." + }, + "return_annotation": "Search results for custom objects in HubSpot CRM.", + "arguments": [ + { + "name": "search_request_body", + "alternative_names": [ + "search_parameters", + "query_parameters" + ], + "description": "JSON object containing search query, limit, paging token, sorting order, properties to include, and filter groups for HubSpot CRM custom object search.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_services_batch", + "description": { + "tagline": "Archive multiple services using their IDs in bulk.", + "detailed": "Use this tool to archive a batch of services in the CRM by providing their IDs. This is useful for managing large sets of records efficiently." + }, + "return_annotation": "Confirmation of services archived.", + "arguments": [ + { + "name": "service_ids_to_archive", + "alternative_names": [ + "ids_for_archiving", + "archive_ids" + ], + "description": "A JSON array of service IDs to archive. Each ID should be a string.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of services by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-162/{serviceId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_hubspot_object_by_id", + "description": { + "tagline": "Retrieve a HubSpot CRM object using its service ID.", + "detailed": "This tool is used to read a specific HubSpot CRM object identified by its `serviceId`. It can optionally use any unique property value by specifying the `idProperty`. The returned data can be customized with the `properties` query parameter." + }, + "return_annotation": "Details of the specified HubSpot CRM object.", + "arguments": [ + { + "name": "hubspot_crm_service_id", + "alternative_names": [ + "crm_object_service_id", + "hubspot_object_id" + ], + "description": "The unique identifier (service ID) of the HubSpot CRM object to retrieve. This can be the internal object ID or any unique property defined by the `idProperty`.", + "endpoint_argument_name": "serviceId" + }, + { + "name": "return_properties_list", + "alternative_names": [ + "properties_to_return", + "include_properties" + ], + "description": "A list of properties to be returned in the response. Non-existing properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "property_history_list", + "historical_properties" + ], + "description": "A list of properties to return along with their history for a HubSpot CRM object. Properties should be specified as strings in the list.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_ids", + "linked_object_types" + ], + "description": "A list of object types whose associated IDs should be retrieved. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_id_property", + "object_unique_property" + ], + "description": "Specify the name of a property with unique values for the object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "include_only_archived", + "fetch_only_archived" + ], + "description": "Set to true to return only archived results. False returns non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-162/{serviceId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{serviceId}`. `{serviceId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "serviceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/0-162/{serviceId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_object_hubspot", + "description": { + "tagline": "Move an object to the recycling bin in HubSpot CRM.", + "detailed": "Use this tool to delete an object identified by `serviceId` within the HubSpot CRM, moving it to the recycling bin." + }, + "return_annotation": "Confirmation of object moved to recycling bin.", + "arguments": [ + { + "name": "object_service_id", + "alternative_names": [ + "hubspot_object_id", + "crm_object_service_id" + ], + "description": "The unique identifier for the object to be moved to the recycling bin in HubSpot CRM.", + "endpoint_argument_name": "serviceId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/0-162/{serviceId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{serviceId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "serviceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/0-162/{serviceId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "edit_hubspot_object", + "description": { + "tagline": "Partially update a HubSpot CRM object with specified properties.", + "detailed": "This tool performs a partial update on a HubSpot CRM object identified by the `serviceId` or a unique property value using the `idProperty` query parameter. It overwrites provided properties while ensuring read-only or non-existent properties result in errors. Properties can be cleared with an empty string." + }, + "return_annotation": "Result of the object update operation in HubSpot CRM.", + "arguments": [ + { + "name": "object_identifier", + "alternative_names": [ + "unique_service_id", + "object_id" + ], + "description": "The unique identifier or `{serviceId}` for the object to be updated. This can be an internal object ID or a unique property value when used with `idProperty`.", + "endpoint_argument_name": "serviceId" + }, + { + "name": "object_properties_update", + "alternative_names": [ + "properties_update", + "update_properties" + ], + "description": "JSON object with key-value pairs representing the properties to be updated. Use empty strings to clear values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_name", + "unique_field_name" + ], + "description": "The name of a unique property for the object, used instead of the internal ID if specified.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/0-162/{serviceId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{serviceId}`or optionally a unique property value as specified by the `idProperty` query param. `{serviceId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "serviceId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/0-162", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "read_services_page", + "description": { + "tagline": "Retrieve a page of services with customizable properties.", + "detailed": "This tool retrieves a page of services from the HubSpot CRM API, allowing customization of returned data via the `properties` query parameter. Use this tool to access service information efficiently." + }, + "return_annotation": "A page of service records with optional properties.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit", + "page_size" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "last_read_resource_token", + "next_page_token" + ], + "description": "The cursor token from the last read to retrieve the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "requested_properties", + "alternative_names": [ + "return_properties", + "selected_properties" + ], + "description": "Comma-separated list of properties to include in the response. Non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "A list of properties to return with their history of values. If absent, properties are ignored. Reduces max services per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_categories" + ], + "description": "A list of object types to retrieve associated IDs for each service. Ignored if associations do not exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "only_archived", + "exclusive_archived" + ], + "description": "Set to true to return only archived results; false to include non-archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/0-162", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of services. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of services that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of services that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_service_record", + "description": { + "tagline": "Create a service record in HubSpot CRM.", + "detailed": "This tool creates a new service object in HubSpot CRM with the specified properties and returns the created object, including its ID. It's useful for adding new service records to the CRM system." + }, + "return_annotation": "Returns the created service object with its ID.", + "arguments": [ + { + "name": "service_creation_data", + "alternative_names": [ + "new_service_data", + "service_object_properties" + ], + "description": "A JSON object with key-value pairs for service properties and associations. Include 'properties' for the service details, and 'associations' for related objects.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a service with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard services is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/0-162/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_of_services", + "description": { + "tagline": "Create a batch of services in HubSpot CRM.", + "detailed": "Use this tool to create multiple service entries at once within HubSpot CRM. This is useful for efficiently managing and organizing service-related data." + }, + "return_annotation": "Information about created service batch.", + "arguments": [ + { + "name": "service_batch_creation_data", + "alternative_names": [ + "services_creation_payload", + "batch_services_data" + ], + "description": "A JSON array of service objects to create, each with properties, associations, and specific trace IDs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/0-162/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of services", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.services.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_hubspot_tasks", + "description": { + "tagline": "Archive multiple HubSpot tasks by their IDs.", + "detailed": "Use this tool to archive a batch of tasks in HubSpot CRM by specifying their IDs. It should be called when you need to update the status of tasks to archived." + }, + "return_annotation": "Confirmation of tasks archiving status.", + "arguments": [ + { + "name": "task_ids_to_archive", + "alternative_names": [ + "ids_of_tasks_to_archive", + "tasks_ids_for_archiving" + ], + "description": "A JSON array of task IDs to be archived. Each element is an object containing the 'id' of the task.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of tasks by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/tasks/{taskId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_task_details", + "description": { + "tagline": "Retrieve HubSpot CRM task details using task ID.", + "detailed": "Call this tool to get detailed information about a specific task in HubSpot CRM by providing the task ID. Modify the returned data using query parameters if needed." + }, + "return_annotation": "Details of the specified CRM task.", + "arguments": [ + { + "name": "task_id", + "alternative_names": [ + "task_identifier", + "unique_task_key" + ], + "description": "The unique identifier for the HubSpot CRM task. Retrieve specific task details using this ID.", + "endpoint_argument_name": "taskId" + }, + { + "name": "requested_properties", + "alternative_names": [ + "fields_to_return", + "output_properties" + ], + "description": "List of properties to return for the task. Only available properties will be returned.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "historical_properties" + ], + "description": "List of properties to return with their previous values. Comma-separated and ignored if not present.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_categories" + ], + "description": "List of object types to retrieve associated IDs for. Returns IDs of related objects.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_name_for_id" + ], + "description": "Specify the name of the property with unique values to identify the task.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "return_archived_only", + "archived_only_results" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/tasks/{taskId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{taskId}`. `{taskId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "taskId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/tasks/{taskId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_task_in_hubspot", + "description": { + "tagline": "Delete a task in HubSpot by task ID.", + "detailed": "Use this tool to move a specific task in HubSpot CRM to the recycling bin by providing the task ID." + }, + "return_annotation": "Confirmation of task deletion in HubSpot CRM.", + "arguments": [ + { + "name": "task_id", + "alternative_names": [ + "hubspot_task_id", + "crm_task_id" + ], + "description": "The unique identifier of the task to be deleted from HubSpot CRM. Required to move the task to the recycling bin.", + "endpoint_argument_name": "taskId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/tasks/{taskId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{taskId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "taskId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/tasks/{taskId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_task", + "description": { + "tagline": "Update properties of a HubSpot task using its ID.", + "detailed": "This tool allows partial updates to a task in HubSpot CRM by specifying a `{taskId}` or a unique property defined by `idProperty`. It overwrites specified properties, with read-only and non-existent properties triggering errors. To clear a property, pass an empty string." + }, + "return_annotation": "Information about the updated task.", + "arguments": [ + { + "name": "task_identifier", + "alternative_names": [ + "task_id", + "unique_task_property" + ], + "description": "The internal ID or unique property name of the task to update. Defaults to internal ID.", + "endpoint_argument_name": "taskId" + }, + { + "name": "task_properties_to_update", + "alternative_names": [ + "task_fields_to_overwrite", + "task_data_to_modify" + ], + "description": "JSON object with key-value pairs for the properties to update in the task. Overwrites existing values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_with_unique_values" + ], + "description": "Specify the name of the property with unique values. Used for identifying the object instead of `taskId`.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/tasks/{taskId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{taskId}`or optionally a unique property value as specified by the `idProperty` query param. `{taskId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "taskId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_tasks", + "description": { + "tagline": "Create a batch of tasks in HubSpot CRM.", + "detailed": "This tool is used to create multiple tasks at once in HubSpot CRM, streamlining task management processes." + }, + "return_annotation": "Confirms creation of a batch of tasks.", + "arguments": [ + { + "name": "task_batch_request", + "alternative_names": [ + "task_batch_data", + "batch_task_payload" + ], + "description": "A JSON object containing an array of tasks to be created, each with properties, associations, and optional trace IDs.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of tasks", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_tasks", + "description": { + "tagline": "Update a batch of tasks in HubSpot CRM.", + "detailed": "Use this tool to update multiple tasks in HubSpot CRM by their internal ID or unique property values. It should be called when you need to modify several tasks at once, such as changing task details or status across multiple entries." + }, + "return_annotation": "Confirmation of task updates.", + "arguments": [ + { + "name": "task_update_requests", + "alternative_names": [ + "batch_task_updates", + "task_batch_update_data" + ], + "description": "A JSON array containing objects with task update details. Each object includes an 'id' or 'idProperty', 'properties' for new values, and an optional 'objectWriteTraceId'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of tasks by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_tasks", + "description": { + "tagline": "Retrieve HubSpot task records by ID or custom property.", + "detailed": "Use this tool to fetch task records from HubSpot CRM by specifying record IDs or a custom unique value property via the `idProperty` parameter." + }, + "return_annotation": "List of HubSpot task records retrieved by their IDs.", + "arguments": [ + { + "name": "task_request_body", + "alternative_names": [ + "tasks_body_payload", + "hubspot_task_data" + ], + "description": "JSON object containing properties for setting tasks, their histories, and optional custom property ID for retrieving records.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "fetch_only_archived", + "include_archived_exclusively" + ], + "description": "Set to true to return only archived records from HubSpot.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of tasks by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_hubspot_tasks", + "description": { + "tagline": "Create or update tasks in HubSpot using a unique property.", + "detailed": "This tool creates or updates HubSpot CRM tasks identified by a unique property value specified by the `idProperty` query parameter. Use this tool when you need to batch upsert tasks based on unique identifiers." + }, + "return_annotation": "Acknowledgment of task creation or update in HubSpot.", + "arguments": [ + { + "name": "tasks_data", + "alternative_names": [ + "tasks_info", + "tasks_input" + ], + "description": "An array of task objects to be upserted. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of tasks by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_hubspot_tasks", + "description": { + "tagline": "Search for tasks in HubSpot CRM.", + "detailed": "Use this tool to search for tasks within HubSpot CRM. It should be called when you need to find specific tasks based on certain search criteria." + }, + "return_annotation": "Search results for tasks in HubSpot CRM.", + "arguments": [ + { + "name": "task_search_criteria", + "alternative_names": [ + "task_search_parameters", + "task_filter_criteria" + ], + "description": "A JSON object containing search criteria such as query strings, limit, sort order, properties, and filters to query tasks in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/tasks_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_tasks_list", + "description": { + "tagline": "Retrieve a page of tasks from HubSpot CRM.", + "detailed": "Use this tool to read a page of tasks from HubSpot CRM. Specify which properties to return using the 'properties' query parameter." + }, + "return_annotation": "A list of tasks with specified properties.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit", + "page_size" + ], + "description": "Specify the maximum number of task results to retrieve per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "cursor_after" + ], + "description": "The token indicating the last resource read, used for pagination to continue from the next page.", + "endpoint_argument_name": "after" + }, + { + "name": "task_properties_to_return", + "alternative_names": [ + "properties_list", + "attributes_to_retrieve" + ], + "description": "A list of property names to include in the response. Ignored if not present on the tasks.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_history_list", + "historical_properties" + ], + "description": "Specify properties to return along with their full change history. Note: This reduces the number of tasks per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "alternative_names": [ + "fetch_associated_ids", + "get_linked_object_ids" + ], + "description": "A list of object types to retrieve associated IDs for. If specified associations do not exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "filter_archived", + "show_only_archived" + ], + "description": "Set to true to return only archived tasks; false for active tasks.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/tasks", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of tasks. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tasks that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tasks that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tasks_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_task_in_crm", + "description": { + "tagline": "Create a task in HubSpot CRM and return task details.", + "detailed": "This tool creates a task in HubSpot CRM with specified properties and returns the task details, including the ID. It should be called when you need to add a new task to the CRM system." + }, + "return_annotation": "Details of the created task, including the task ID.", + "arguments": [ + { + "name": "task_properties", + "alternative_names": [ + "task_details", + "task_configuration" + ], + "description": "A JSON object containing key-value pairs for the task properties, including associations. The 'associations' key should list entities and their types related to the task.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tasks", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a task with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard tasks is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.contacts.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/taxes_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_taxes_page", + "description": { + "tagline": "Retrieve a page of tax details from HubSpot CRM.", + "detailed": "Use this tool to read a specific page of tax details from the HubSpot CRM. You can control which properties are returned by specifying them in the query parameters." + }, + "return_annotation": "A list of taxes details for a page.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "results_limit_per_page", + "page_results_count" + ], + "description": "Specify the maximum number of tax results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "cursor_token" + ], + "description": "The token for the paging cursor from the last read resource for fetching the next page of results.", + "endpoint_argument_name": "after" + }, + { + "name": "included_properties", + "alternative_names": [ + "return_properties", + "specified_properties" + ], + "description": "List the properties to be returned for each tax. Specify as an array of strings.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_with_past_values" + ], + "description": "Specify properties to return with their history. Reduces max number of taxes per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "alternative_names": [ + "fetch_associated_objects", + "get_association_ids" + ], + "description": "Comma-separated list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "archived_only", + "alternative_names": [ + "show_only_archived", + "return_only_archived" + ], + "description": "Set to true to return only archived tax results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/taxes", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of taxes. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of taxes that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of taxes that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_hubspot_tax", + "description": { + "tagline": "Create a tax in HubSpot CRM and retrieve its details.", + "detailed": "This tool creates a tax with specified properties in HubSpot CRM and returns a detailed object including the newly assigned ID. Use this for adding new tax records to your CRM system." + }, + "return_annotation": "Details of the created tax object, including its ID.", + "arguments": [ + { + "name": "tax_creation_details", + "alternative_names": [ + "tax_creation_data", + "tax_creation_payload" + ], + "description": "JSON object with properties for the new tax, including any associations. Include key-value pairs to set properties, and optionally add associations with IDs and types.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a tax with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard taxes is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/taxes/{taxId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_tax_details_by_id", + "description": { + "tagline": "Retrieve tax details using a specific tax ID.", + "detailed": "This tool retrieves tax object details from HubSpot CRM by specifying a tax ID. The ID can be the internal object ID or any unique property value as set by the `idProperty` query parameter. Useful for accessing specific tax information within HubSpot." + }, + "return_annotation": "Tax object details from HubSpot CRM.", + "arguments": [ + { + "name": "tax_id", + "alternative_names": [ + "tax_identifier", + "unique_tax_id" + ], + "description": "The unique ID or property value for the tax object. Default is the internal object ID.", + "endpoint_argument_name": "taxId" + }, + { + "name": "return_properties", + "alternative_names": [ + "property_list", + "response_properties" + ], + "description": "Comma-separated list of properties to be included in the response. Non-existing properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_property_list", + "property_history_inclusion" + ], + "description": "List properties to return with their historical values. Use a comma-separated format.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_as_id" + ], + "description": "The name of a property whose values are unique for the tax object. Use this to specify an alternative ID property instead of the default internal ID.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "fetch_archived_records", + "show_archived_records_only" + ], + "description": "Set to true to return only archived results. False returns non-archived records.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/taxes/{taxId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{taxId}`. `{taxId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "taxId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/taxes/{taxId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_tax_entry", + "description": { + "tagline": "Archive a tax entry in HubSpot CRM.", + "detailed": "Use this tool to move a tax object identified by `taxId` to the recycling bin in HubSpot CRM." + }, + "return_annotation": "Confirms the tax entry has been archived.", + "arguments": [ + { + "name": "tax_entry_id", + "alternative_names": [ + "tax_object_id", + "tax_record_id" + ], + "description": "The unique identifier for the tax entry you want to archive in HubSpot CRM.", + "endpoint_argument_name": "taxId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/taxes/{taxId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{taxId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "taxId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/taxes/{taxId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_tax_object", + "description": { + "tagline": "Update properties of a tax object in HubSpot CRM.", + "detailed": "This tool updates specified properties of a tax object in HubSpot CRM using its ID or a unique property value. It's used to perform partial updates where only certain fields need modification. Fields to be updated are specified in the request, and read-only or non-existent fields will cause errors. To clear a property, pass an empty string." + }, + "return_annotation": "Information about the updated tax object.", + "arguments": [ + { + "name": "tax_object_identifier", + "alternative_names": [ + "tax_id_value", + "unique_property_tax_id" + ], + "description": "The identifier for the tax object. Use the internal `taxId` by default or provide a unique property value specified by the `idProperty`.", + "endpoint_argument_name": "taxId" + }, + { + "name": "tax_object_properties", + "alternative_names": [ + "tax_fields_update", + "tax_details_patch" + ], + "description": "JSON object containing key-value pairs of properties to update. Read-only or non-existent fields will cause errors. Empty strings can clear values.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property_name", + "unique_identifier_property" + ], + "description": "The name of a property uniquely identifying this tax object. Used instead of `taxId` if specified.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/taxes/{taxId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{taxId}`or optionally a unique property value as specified by the `idProperty` query param. `{taxId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "taxId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_or_update_tax_records", + "description": { + "tagline": "Create or update tax records based on unique properties.", + "detailed": "This tool creates or updates tax records in HubSpot CRM by using unique property values specified by the `idProperty` parameter. It should be called when you need to ensure tax records are correctly up-to-date by leveraging existing unique identifiers." + }, + "return_annotation": "Confirmation of created or updated tax records.", + "arguments": [ + { + "name": "tax_records_payload", + "alternative_names": [ + "tax_records_input", + "payload_data" + ], + "description": "JSON object containing an array of tax record objects to create or update. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties` to specify the unique identifiers and details of the record.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of taxes by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_batch_taxes", + "description": { + "tagline": "Update taxes in batch using IDs or unique values.", + "detailed": "Call this tool to update multiple tax records at once in HubSpot CRM using either internal IDs or unique property values." + }, + "return_annotation": "Confirmation of batch tax updates.", + "arguments": [ + { + "name": "batch_taxes_update_payload", + "alternative_names": [ + "tax_update_data", + "batch_update_info" + ], + "description": "JSON payload for updating batch taxes, including IDs or unique property values, property updates, and tracing ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of taxes by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_tax_records", + "description": { + "tagline": "Retrieve tax records by ID or custom property.", + "detailed": "Use this tool to retrieve tax records by specifying record IDs or using a custom unique value property. It's useful when you need detailed tax information for specific records." + }, + "return_annotation": "Tax records retrieved by ID or custom property.", + "arguments": [ + { + "name": "tax_records_request_data", + "alternative_names": [ + "tax_details_request_payload", + "tax_data_retrieval_parameters" + ], + "description": "A JSON object containing the details for retrieving tax records. Include 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties'. Use 'idProperty' to specify a custom property for retrieval, or 'inputs' to list record IDs.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "fetch_archived_only", + "include_archived_only" + ], + "description": "Set to true to retrieve only archived records, false to exclude them.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of taxes by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_tax_batch", + "description": { + "tagline": "Create a batch of taxes in HubSpot CRM.", + "detailed": "Use this tool to create multiple tax records at once in HubSpot CRM. Ideal for situations where bulk tax data entry is required." + }, + "return_annotation": "Confirmation of tax batch creation.", + "arguments": [ + { + "name": "tax_batch_data", + "alternative_names": [ + "batch_tax_records", + "multiple_tax_entries" + ], + "description": "JSON structured data for creating multiple tax records. It includes tax properties, associations, and an optional object write trace ID.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of taxes", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_taxes", + "description": { + "tagline": "Search for tax entries within HubSpot CRM.", + "detailed": "Use this tool to find specific tax records in HubSpot CRM based on search criteria. It returns relevant tax entries from the CRM database." + }, + "return_annotation": "Returns search results of tax entries in the CRM.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "query_parameters", + "tax_search_filters" + ], + "description": "A JSON object defining search criteria, including query, limit, sorts, and filters.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/taxes/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_tax_batch", + "description": { + "tagline": "Archive a batch of taxes by their IDs.", + "detailed": "This tool archives a batch of taxes in the HubSpot CRM by their IDs. It should be called when you need to remove or deactivate multiple tax records at once." + }, + "return_annotation": "Batch archive confirmation for taxes.", + "arguments": [ + { + "name": "tax_ids_to_archive", + "alternative_names": [ + "archive_tax_ids", + "remove_tax_ids" + ], + "description": "A JSON array of tax IDs to archive. Each ID should be a string representing a tax record in the HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/taxes/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of taxes by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.line_items.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets/merge_merge", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "merge_support_tickets", + "description": { + "tagline": "Merge two support tickets into one unified record.", + "detailed": "This tool merges two separate support tickets into a single ticket record, combining all the relevant information. It should be used when consolidating duplicate or related tickets is necessary to streamline customer support operations." + }, + "return_annotation": "Details of the merged ticket record.", + "arguments": [ + { + "name": "secondary_ticket_id", + "alternative_names": [ + "ticket_id_to_merge", + "merge_target_ticket_id" + ], + "description": "The ID of the support ticket to be merged into the primary ticket. It specifies which ticket will be combined with the primary ticket record.", + "endpoint_argument_name": "objectIdToMerge" + }, + { + "name": "primary_ticket_id", + "alternative_names": [ + "main_ticket_id", + "lead_ticket_id" + ], + "description": "The ID of the ticket designated as the primary record in the merge operation. After merging, this ticket will contain all combined information.", + "endpoint_argument_name": "primaryObjectId" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/merge", + "tags": [ + "Basic" + ], + "summary": "Merge two tickets", + "description": "Merge two tickets, combining them into one ticket record.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "objectIdToMerge", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "primaryObjectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/crm/v3/objects/tickets/batch/archive_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_hubspot_tickets_batch", + "description": { + "tagline": "Delete a batch of tickets in HubSpot CRM.", + "detailed": "Use this tool to delete multiple tickets by ID in HubSpot CRM. Deleted tickets can be restored within 90 days." + }, + "return_annotation": "Confirmation of batch ticket deletion in HubSpot CRM.", + "arguments": [ + { + "name": "ticket_ids_batch", + "alternative_names": [ + "batch_ticket_ids", + "multiple_ticket_ids" + ], + "description": "A JSON array of ticket IDs to be deleted. Each ID should be a string representing a ticket in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of tickets by ID", + "description": "Delete a batch of tickets by ID. Deleted tickets can be restored within 90 days of deletion. Learn more about [restoring records](https://knowledge.hubspot.com/records/restore-deleted-records).", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/tickets/{ticketId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_ticket_details", + "description": { + "tagline": "Retrieve details of a ticket by ID from HubSpot CRM.", + "detailed": "This tool retrieves detailed information about a specific ticket in HubSpot CRM identified by `ticketId`. It's useful for obtaining comprehensive ticket data." + }, + "return_annotation": "Ticket details retrieved from HubSpot CRM.", + "arguments": [ + { + "name": "ticket_id", + "alternative_names": [ + "ticket_identifier", + "ticket_id_number" + ], + "description": "The ID of the ticket to retrieve from HubSpot CRM. This can be the internal object ID or a unique property value based on the `idProperty`.", + "endpoint_argument_name": "ticketId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "desired_properties", + "fetch_properties" + ], + "description": "A list of properties to include in the response. Properties not present will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "historical_properties", + "properties_history_list" + ], + "description": "List of properties with their history to be returned. If properties are missing, they'll be ignored.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "List of object types for retrieving associated IDs. Non-existent associations will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_identifier_property", + "alternative_names": [ + "unique_property_name", + "identifier_property_name" + ], + "description": "Specifies the property name with unique values for identifying the ticket.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "only_return_archived", + "alternative_names": [ + "show_archived_only", + "archived_filter" + ], + "description": "Set to true to return only archived results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/tickets/{ticketId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{ticketId}`. `{ticketId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "ticketId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/tickets/{ticketId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_ticket", + "description": { + "tagline": "Move a ticket to the recycling bin by ticket ID.", + "detailed": "Use this tool to delete a CRM ticket by moving it to the recycling bin using its unique ticket ID." + }, + "return_annotation": "Confirmation of ticket deletion to recycling bin.", + "arguments": [ + { + "name": "ticket_id", + "alternative_names": [ + "ticket_identifier", + "ticket_code" + ], + "description": "The unique ID of the ticket to move to the recycling bin. Must be a valid string representing the ticket identifier.", + "endpoint_argument_name": "ticketId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/tickets/{ticketId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{ticketId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "ticketId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/tickets/{ticketId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_ticket_info", + "description": { + "tagline": "Partially update ticket details in HubSpot CRM.", + "detailed": "Use this tool to perform a partial update on a ticket identified by its `{ticketId}` or a unique property value specified by `idProperty` in HubSpot CRM. Read-only and non-existent properties will cause errors. Clear property values by passing an empty string." + }, + "return_annotation": "Details of the updated ticket in the CRM.", + "arguments": [ + { + "name": "ticket_id", + "alternative_names": [ + "unique_ticket_identifier", + "ticket_identifier" + ], + "description": "The internal ID of the ticket to be updated. This is used to identify the specific ticket in HubSpot CRM.", + "endpoint_argument_name": "ticketId" + }, + { + "name": "ticket_update_properties", + "alternative_names": [ + "ticket_property_updates", + "ticket_attribute_changes" + ], + "description": "A JSON object with key-value pairs representing the properties to update on the ticket. Each key is a property name, and its value is the new value for that property. Clear a property by setting its value to an empty string.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier", + "property_key" + ], + "description": "The name of a property whose values are unique for the ticket object. Specify if not using the default ticket ID.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/tickets/{ticketId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{ticketId}`or optionally a unique property value as specified by the `idProperty` query param. `{ticketId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "ticketId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets/batch/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_crm_tickets", + "description": { + "tagline": "Create or update CRM tickets in bulk using unique identifiers.", + "detailed": "This tool allows you to create or update ticket records in HubSpot CRM by using a unique identifier specified through the `idProperty` query parameter. This is useful for ensuring ticket data is up-to-date or for adding new ticket entries in bulk." + }, + "return_annotation": "Details of tickets that were created or updated.", + "arguments": [ + { + "name": "ticket_data_list", + "alternative_names": [ + "ticket_records", + "tickets_input" + ], + "description": "A list of ticket data objects to be upserted, each containing a unique identifier and property details.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of tickets by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets/batch/read_read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_ticket_batch", + "description": { + "tagline": "Retrieve a batch of tickets by ID or property value.", + "detailed": "Use this tool to fetch a batch of CRM tickets by providing their IDs or a specific unique property value. Ideal for obtaining detailed information about multiple tickets simultaneously." + }, + "return_annotation": "Batch of tickets retrieved by ID or unique property.", + "arguments": [ + { + "name": "ticket_request_batch", + "alternative_names": [ + "ticket_input_data", + "tickets_query_payload" + ], + "description": "JSON object specifying the properties, ID property, and input ticket IDs or properties for retrieval.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_archived_tickets_only", + "alternative_names": [ + "include_archived_tickets", + "fetch_archived_tickets" + ], + "description": "Set to true to return only archived tickets. If false, include non-archived tickets as well.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of tickets by internal ID, or unique property values", + "description": "Retrieve a batch of tickets by ID (`ticketId`) or unique property value (`idProperty`). ", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/tickets_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_tickets_page", + "description": { + "tagline": "Retrieve a page of tickets from HubSpot CRM.", + "detailed": "Use this tool to read a page of tickets from HubSpot CRM. You can control the returned data using the `properties` query parameter." + }, + "return_annotation": "A page of ticket data from HubSpot CRM.", + "arguments": [ + { + "name": "results_per_page", + "alternative_names": [ + "max_results", + "per_page_limit" + ], + "description": "The maximum number of results to display per page. Must be a positive integer.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "cursor_token", + "pagination_token" + ], + "description": "The token for the last read resource to continue paging results.", + "endpoint_argument_name": "after" + }, + { + "name": "include_properties", + "alternative_names": [ + "select_properties", + "return_properties" + ], + "description": "A list of properties to return for each ticket. Specify as strings; unlisted properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_previous_values", + "historical_properties" + ], + "description": "A list of property names to return with their historical values. Reduces the number of tickets retrievable per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_object_types" + ], + "description": "A list of object types (e.g. 'contacts', 'companies') to retrieve associated IDs for tickets. Ignore if they don't exist.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "show_only_archived", + "filter_archived_results" + ], + "description": "Return only archived tickets if set to 'True'.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/tickets", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of tickets. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tickets that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tickets that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_ticket", + "description": { + "tagline": "Create a support ticket in HubSpot CRM.", + "detailed": "Use this tool to create a new support ticket with specified properties in HubSpot CRM and receive a copy of the ticket object along with its ID." + }, + "return_annotation": "Details of the created ticket including the ID.", + "arguments": [ + { + "name": "ticket_properties", + "alternative_names": [ + "ticket_details", + "ticket_data" + ], + "description": "JSON object containing key-value pairs for setting properties for the new ticket, including optional associations.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a ticket with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard tickets is provided.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_tickets", + "description": { + "tagline": "Search and filter CRM tickets based on properties and associations.", + "detailed": "Utilize this tool to search for tickets within the CRM by applying specific filters on properties, examining associations, and sorting the results. Ideal for retrieving detailed ticket information based on particular criteria." + }, + "return_annotation": "Search results for CRM tickets.", + "arguments": [ + { + "name": "ticket_search_criteria", + "alternative_names": [ + "ticket_search_parameters", + "ticket_search_filters" + ], + "description": "JSON object containing the criteria for ticket search, including query string, sort options, pagination, and filters.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/search", + "tags": [ + "Search" + ], + "summary": "Search for tickets", + "description": "Search for tickets by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets/batch/create_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_batch_tickets", + "description": { + "tagline": "Create a batch of tickets in HubSpot CRM.", + "detailed": "Use this tool to create multiple tickets in HubSpot CRM at once. You can specify property values for each ticket and define associations with other CRM records." + }, + "return_annotation": "Information about the created tickets.", + "arguments": [ + { + "name": "ticket_batch_request", + "alternative_names": [ + "batch_ticket_data", + "ticket_creation_payload" + ], + "description": "A JSON object containing an array of `inputs`, each with `properties` for ticket details and optional `associations` to connect with other CRM records.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of tickets", + "description": "Create a batch of tickets. The `inputs` array can contain a `properties` object to define property values for the ticket, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/tickets/batch/update_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_ticket_batch", + "description": { + "tagline": "Update multiple tickets in HubSpot CRM by ID or property.", + "detailed": "This tool updates a batch of tickets in the HubSpot CRM using their IDs or a unique property value. Use it when you need to modify several tickets at once. Properties that are read-only or non-existent will cause an error, and providing an empty string will clear a property value." + }, + "return_annotation": "Confirmation of batch ticket updates.", + "arguments": [ + { + "name": "ticket_update_data", + "alternative_names": [ + "tickets_update_payload", + "batch_ticket_details" + ], + "description": "A JSON array of ticket objects to update, each with 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/tickets/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of tickets by internal ID, or unique property values", + "description": "Update a batch of tickets by ID (`ticketId`) or unique property value (`idProperty`). Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "tickets" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail_getDetailById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_event_details", + "description": { + "tagline": "Retrieve detailed information for a specific HubSpot event.", + "detailed": "Use this tool to get detailed information about a specific event in HubSpot CRM, identified by its template ID and event ID." + }, + "return_annotation": "Details of the specified event from HubSpot CRM.", + "arguments": [ + { + "name": "event_template_id", + "alternative_names": [ + "template_id", + "template_identifier" + ], + "description": "The ID of the event template used to identify and retrieve specific event details in HubSpot CRM.", + "endpoint_argument_name": "eventTemplateId" + }, + { + "name": "event_id", + "alternative_names": [ + "event_identifier", + "id_of_event" + ], + "description": "Specify the event ID to retrieve detailed information for a specific event in HubSpot CRM.", + "endpoint_argument_name": "eventId" + } + ] + }, + "method": "GET", + "path": "/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail", + "tags": [ + "Events" + ], + "summary": "Get event details", + "description": "Retrieve details for a specific event, specified by template ID and event ID.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.highly_sensitive.read.v2", + "crm.schemas.companies.read", + "tickets.sensitive.v2", + "crm.schemas.contacts.read", + "tickets.highly_sensitive.v2", + "crm.objects.contacts.read", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.schemas.deals.read", + "crm.objects.deals.read", + "tickets", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.contacts.sensitive.read.v2", + "crm.objects.companies.read", + "timeline" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "eventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event ID." + }, + "description": "The event ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/integrators/timeline/v3/events_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "send_event_to_hubspot", + "description": { + "tagline": "Send event data to a specified HubSpot event type.", + "detailed": "This tool is used to send a single instance of event data to a specified event type in HubSpot CRM. It should be called when there's a need to submit event data to HubSpot for tracking or analysis." + }, + "return_annotation": "Confirmation of event submission to HubSpot.", + "arguments": [ + { + "name": "event_definition", + "alternative_names": [ + "timeline_event_data", + "event_data_payload" + ], + "description": "A JSON object defining the timeline event with details such as event template ID, additional data, iframe details, domain, tokens, event identifier, user token, email, CRM object ID, and timestamp.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/integrators/timeline/v3/events", + "tags": [ + "Events" + ], + "summary": "Send event data (single)", + "description": "Send a single instance of event data to a specified event type.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.deals.write", + "crm.objects.contacts.write", + "crm.objects.companies.highly_sensitive.write.v2", + "tickets.sensitive.v2", + "tickets.highly_sensitive.v2", + "crm.schemas.companies.write", + "crm.objects.companies.write", + "tickets", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.schemas.contacts.write", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.contacts.highly_sensitive.write.v2", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "eventTemplateId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "extraData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "linkLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The width of the modal window in pixels." + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI of the iframe contents." + }, + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The height of the modal window in pixels." + } + }, + "inner_properties": null, + "description": null + }, + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline." + } + }, + "inner_properties": null, + "description": "The timeline event definition." + }, + "description": "The timeline event definition.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "The state of the timeline event.", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "extraData": { + "type": "object", + "description": "Additional event-specific data that can be interpreted by the template's markdown.", + "properties": {} + }, + "timelineIFrame": { + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ] + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "description": "A collection of token keys and values associated with the template tokens.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + } + }, + "required": [ + "eventTemplateId", + "tokens" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"The timeline event definition.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"eventTemplateId\",\n \"tokens\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"eventTemplateId\": {\n \"type\": \"string\",\n \"description\": \"The event template ID.\"\n },\n \"extraData\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional event-specific data that can be interpreted by the template's markdown.\"\n },\n \"timelineIFrame\": {\n \"required\": [\n \"headerLabel\",\n \"height\",\n \"linkLabel\",\n \"url\",\n \"width\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"linkLabel\": {\n \"type\": \"string\",\n \"description\": \"The text displaying the link that will display the iframe.\"\n },\n \"headerLabel\": {\n \"type\": \"string\",\n \"description\": \"The label of the modal window that displays the iframe contents.\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"description\": \"The width of the modal window in pixels.\",\n \"format\": \"int32\"\n },\n \"url\": {\n \"type\": \"string\",\n \"description\": \"The URI of the iframe contents.\"\n },\n \"height\": {\n \"type\": \"integer\",\n \"description\": \"The height of the modal window in pixels.\",\n \"format\": \"int32\"\n }\n },\n \"example\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n },\n \"domain\": {\n \"type\": \"string\",\n \"description\": \"The event domain (often paired with utk).\"\n },\n \"tokens\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A collection of token keys and values associated with the template tokens.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness.\"\n },\n \"utk\": {\n \"type\": \"string\",\n \"description\": \"Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie.\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`).\"\n },\n \"objectId\": {\n \"type\": \"string\",\n \"description\": \"The CRM object identifier. This is required for every event other than contacts (where utk or email can be used).\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"description\": \"The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.\",\n \"format\": \"date-time\"\n }\n },\n \"description\": \"The state of the timeline event.\",\n \"example\": {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"art3mis-pup@petspot.com\",\n \"tokens\": {\n \"petName\": \"Art3mis\",\n \"petAge\": 3,\n \"petColor\": \"black\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good girl?\",\n \"answer\": \"Bark!\"\n },\n {\n \"question\": \"Do you wanna go on a walk?\",\n \"answer\": \"Woof!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "put-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "PUT", + "path": "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}", + "tags": [ + "Tokens" + ], + "summary": "Update a template token", + "description": "Update an event type template token, specified by token name.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "tokenName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token name." + }, + "description": "The token name.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "If type is `enumeration`, we should have a list of options to choose from." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + } + }, + "inner_properties": null, + "description": "The updated token definition." + }, + "description": "The updated token definition.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "State of the token definition for update requests.", + "properties": { + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "label", + "value" + ] + } + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + } + }, + "required": [ + "label" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "DELETE", + "path": "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}", + "tags": [ + "Tokens" + ], + "summary": "Delete a template token", + "description": "Delete an existing token from a specific event type template.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "tokenName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The token name." + }, + "description": "The token name.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_event_instance", + "description": { + "tagline": "Retrieve an event instance using template and event ID.", + "detailed": "Use this tool to access detailed information about a specific event instance by providing the event template ID and event ID." + }, + "return_annotation": "Event instance details based on template and event ID.", + "arguments": [ + { + "name": "event_template_id", + "alternative_names": [ + "template_id", + "event_template_identifier" + ], + "description": "The unique ID of the event template required to retrieve the event instance.", + "endpoint_argument_name": "eventTemplateId" + }, + { + "name": "event_id", + "alternative_names": [ + "event_identifier", + "event_key" + ], + "description": "The unique identifier for the specific event you want to retrieve.", + "endpoint_argument_name": "eventId" + } + ] + }, + "method": "GET", + "path": "/integrators/timeline/v3/events/{eventTemplateId}/{eventId}", + "tags": [ + "Events" + ], + "summary": "Get an event instance", + "description": "Retrieve an event instance, specified by template ID and event ID.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.companies.highly_sensitive.read.v2", + "crm.schemas.companies.read", + "tickets.sensitive.v2", + "crm.schemas.contacts.read", + "tickets.highly_sensitive.v2", + "crm.objects.contacts.read", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.schemas.deals.read", + "crm.objects.deals.read", + "tickets", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.contacts.sensitive.read.v2", + "crm.objects.companies.read", + "timeline" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "eventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event ID." + }, + "description": "The event ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/integrators/timeline/v3/events/batch/create_createBatch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "batch_create_timeline_events", + "description": { + "tagline": "Batch create multiple timeline event instances.", + "detailed": "Batch create multiple timeline events using an event template. Created events are immutable and can trigger updates to object properties if configured in the template." + }, + "return_annotation": "Confirmation of timeline events creation.", + "arguments": [ + { + "name": "timeline_event_definitions", + "alternative_names": [ + "event_payload", + "batch_event_data" + ], + "description": "A JSON array of event definitions, each requiring an eventTemplateId, domain, and additional optional fields like extraData, timelineIFrame, tokens, and more. This defines the timeline events to create.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/integrators/timeline/v3/events/batch/create", + "tags": [ + "Events" + ], + "summary": "Create multiple events", + "description": "Batch create multiple instances of timeline events based on an event template. Once created, these event are immutable on the object timeline and cannot be modified. If the event template was configured to update object properties via `objectPropertyName`, this call will also attempt to updates those properties, or add them if they don't exist.", + "requires_security": true, + "oauth_scopes": [ + "crm.schemas.deals.write", + "crm.objects.contacts.write", + "crm.objects.companies.highly_sensitive.write.v2", + "tickets.sensitive.v2", + "tickets.highly_sensitive.v2", + "crm.schemas.companies.write", + "crm.objects.companies.write", + "tickets", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.schemas.contacts.write", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.contacts.highly_sensitive.write.v2", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.deals.sensitive.write.v2" + ], + "security_schemes": [ + "oauth2", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "eventTemplateId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "extraData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "linkLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The width of the modal window in pixels." + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI of the iframe contents." + }, + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The height of the modal window in pixels." + } + }, + "inner_properties": null, + "description": null + }, + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline." + } + }, + "description": "A collection of timeline events we want to create." + } + }, + "inner_properties": null, + "description": "The timeline event definition." + }, + "description": "The timeline event definition.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Used to create timeline events in batches.", + "properties": { + "inputs": { + "type": "array", + "description": "A collection of timeline events we want to create.", + "items": { + "type": "object", + "description": "The state of the timeline event.", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "extraData": { + "type": "object", + "description": "Additional event-specific data that can be interpreted by the template's markdown.", + "properties": {} + }, + "timelineIFrame": { + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ] + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "description": "A collection of token keys and values associated with the template tokens.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string", + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + } + }, + "required": [ + "eventTemplateId", + "tokens" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"The timeline event definition.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"A collection of timeline events we want to create.\",\n \"items\": {\n \"required\": [\n \"eventTemplateId\",\n \"tokens\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"eventTemplateId\": {\n \"type\": \"string\",\n \"description\": \"The event template ID.\"\n },\n \"extraData\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional event-specific data that can be interpreted by the template's markdown.\"\n },\n \"timelineIFrame\": {\n \"required\": [\n \"headerLabel\",\n \"height\",\n \"linkLabel\",\n \"url\",\n \"width\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"linkLabel\": {\n \"type\": \"string\",\n \"description\": \"The text displaying the link that will display the iframe.\"\n },\n \"headerLabel\": {\n \"type\": \"string\",\n \"description\": \"The label of the modal window that displays the iframe contents.\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"description\": \"The width of the modal window in pixels.\",\n \"format\": \"int32\"\n },\n \"url\": {\n \"type\": \"string\",\n \"description\": \"The URI of the iframe contents.\"\n },\n \"height\": {\n \"type\": \"integer\",\n \"description\": \"The height of the modal window in pixels.\",\n \"format\": \"int32\"\n }\n },\n \"example\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n },\n \"domain\": {\n \"type\": \"string\",\n \"description\": \"The event domain (often paired with utk).\"\n },\n \"tokens\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A collection of token keys and values associated with the template tokens.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness.\"\n },\n \"utk\": {\n \"type\": \"string\",\n \"description\": \"Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie.\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`).\"\n },\n \"objectId\": {\n \"type\": \"string\",\n \"description\": \"The CRM object identifier. This is required for every event other than contacts (where utk or email can be used).\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"description\": \"The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.\",\n \"format\": \"date-time\"\n }\n },\n \"description\": \"The state of the timeline event.\",\n \"example\": {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"art3mis-pup@petspot.com\",\n \"tokens\": {\n \"petName\": \"Art3mis\",\n \"petAge\": 3,\n \"petColor\": \"black\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good girl?\",\n \"answer\": \"Bark!\"\n },\n {\n \"question\": \"Do you wanna go on a walk?\",\n \"answer\": \"Woof!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n }\n }\n }\n },\n \"description\": \"Used to create timeline events in batches.\",\n \"example\": {\n \"inputs\": [\n {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"art3mis-pup@petspot.com\",\n \"tokens\": {\n \"petName\": \"Art3mis\",\n \"petAge\": 3,\n \"petColor\": \"black\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good girl?\",\n \"answer\": \"Bark!\"\n },\n {\n \"question\": \"Do you wanna go on a walk?\",\n \"answer\": \"Woof!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n },\n {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"pocket-tiger@petspot.com\",\n \"tokens\": {\n \"petName\": \"Pocket\",\n \"petAge\": 3,\n \"petColor\": \"yellow\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good kitty?\",\n \"answer\": \"Purr...\"\n },\n {\n \"question\": \"Will you stop playing with that?\",\n \"answer\": \"Meow!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Pocket\",\n \"headerLabel\": \"Pocket Tiger\",\n \"url\": \"https://my.petspot.com/pets/Pocket\",\n \"width\": 600,\n \"height\": 400\n }\n }\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/integrators/timeline/v3/{appId}/event-templates_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "GET", + "path": "/integrators/timeline/v3/{appId}/event-templates", + "tags": [ + "Templates" + ], + "summary": "Get all event templates", + "description": "Retrieve all templates defined for an app.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/integrators/timeline/v3/{appId}/event-templates_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "POST", + "path": "/integrators/timeline/v3/{appId}/event-templates", + "tags": [ + "Templates" + ], + "summary": "Create an event template", + "description": "Event templates define the general structure for a custom timeline event, and enable you to send event data to HubSpot. A template includes formatted copy for its heading and details, as well as any custom property definitions. A single app can include up to 750 event templates.
the `v1` and `v3` timeline events APIs are only available for app partners with existing `v1`/`v3` timeline events defined in their public app. If you're not an app partner, you can send custom event data to HubSpot using the [custom events API](/api-reference/events-manage-event-definitions-v3/guide).", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "detailTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The template name." + }, + "tokens": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "createdAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "If type is `enumeration`, we should have a list of options to choose from." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "date", + "enumeration", + "number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration]." + }, + "updatedAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020." + } + }, + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects." + }, + "headerTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + } + }, + "inner_properties": null, + "description": "The new event template definition." + }, + "description": "The new event template definition.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "State of the template definition being created.", + "properties": { + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "type": "object", + "description": "State of the token definition.", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "label", + "value" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "required": [ + "label", + "name", + "type" + ] + } + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + } + }, + "required": [ + "name", + "objectType", + "tokens" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "GET", + "path": "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}", + "tags": [ + "Templates" + ], + "summary": "Get an event template", + "description": "Retrieve an event type template by ID.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "PUT", + "path": "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}", + "tags": [ + "Templates" + ], + "summary": "Update an event template", + "description": "Update an existing event template, specified by ID.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "detailTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The template name." + }, + "tokens": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "createdAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "If type is `enumeration`, we should have a list of options to choose from." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "date", + "enumeration", + "number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration]." + }, + "updatedAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020." + } + }, + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The template ID." + }, + "headerTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + } + }, + "inner_properties": null, + "description": "The updated event template definition." + }, + "description": "The updated event template definition.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "State of the template definition being updated.", + "properties": { + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "type": "object", + "description": "State of the token definition.", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "label", + "value" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "required": [ + "label", + "name", + "type" + ] + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + } + }, + "required": [ + "id", + "name", + "tokens" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "DELETE", + "path": "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}", + "tags": [ + "Templates" + ], + "summary": "Delete an event template", + "description": "Delete an event type template by ID.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "POST", + "path": "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens", + "tags": [ + "Tokens" + ], + "summary": "Add tokens to an existing template", + "description": "Update an existing event type template with new tokens.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "eventTemplateId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "description": "The event template ID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the target app." + }, + "description": "The ID of the target app.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "createdAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "If type is `enumeration`, we should have a list of options to choose from." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "date", + "enumeration", + "number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration]." + }, + "updatedAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020." + } + }, + "inner_properties": null, + "description": "The new token definition." + }, + "description": "The new token definition.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "State of the token definition.", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "label", + "value" + ] + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "required": [ + "label", + "name", + "type" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/extensions/calling/transcripts", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upload_call_transcripts", + "description": { + "tagline": "Upload call transcripts to HubSpot CRM.", + "detailed": "Use this tool to upload call transcripts to HubSpot CRM. It should be called when you need to store transcripts for CRM purposes." + }, + "return_annotation": "Confirmation of transcript upload success.", + "arguments": [ + { + "name": "transcript_data", + "alternative_names": [ + "call_transcript_payload", + "transcript_input" + ], + "description": "A JSON object containing transcript details with utterances and engagement ID to upload to HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/extensions/calling/transcripts", + "tags": [ + "Transcripts" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.extensions_calling_transcripts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "transcriptCreateUtterances": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "endTimeMillis": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "startTimeMillis": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "speaker": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "languageCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "engagementId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "transcriptCreateUtterances": { + "type": "array", + "items": { + "type": "object", + "properties": { + "endTimeMillis": { + "type": "integer", + "format": "int32" + }, + "startTimeMillis": { + "type": "integer", + "format": "int32" + }, + "speaker": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "email": { + "type": "string" + } + }, + "required": [ + "id", + "name" + ] + }, + "text": { + "type": "string" + }, + "languageCode": { + "type": "string" + } + }, + "required": [ + "endTimeMillis", + "speaker", + "startTimeMillis", + "text" + ] + } + }, + "engagementId": { + "type": "integer", + "format": "int64" + } + }, + "required": [ + "engagementId", + "transcriptCreateUtterances" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"engagementId\",\n \"transcriptCreateUtterances\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"transcriptCreateUtterances\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"endTimeMillis\",\n \"speaker\",\n \"startTimeMillis\",\n \"text\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"endTimeMillis\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"startTimeMillis\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"speaker\": {\n \"required\": [\n \"id\",\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n }\n }\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"languageCode\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"engagementId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/extensions/calling/transcripts/{transcriptId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_transcript_by_id", + "description": { + "tagline": "Retrieve call transcript details by transcript ID.", + "detailed": "This tool retrieves details of a call transcript for a given transcript ID in the HubSpot CRM. Use it to access specific call records and transcript data." + }, + "return_annotation": "Transcript details for a specific transcript ID.", + "arguments": [ + { + "name": "transcript_id", + "alternative_names": [ + "transcript_identifier", + "transcript_reference" + ], + "description": "The unique identifier of the call transcript to retrieve from HubSpot CRM.", + "endpoint_argument_name": "transcriptId" + } + ] + }, + "method": "GET", + "path": "/crm/v3/extensions/calling/transcripts/{transcriptId}", + "tags": [ + "Transcripts" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.extensions_calling_transcripts.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "transcriptId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/extensions/calling/transcripts/{transcriptId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_call_transcript", + "description": { + "tagline": "Delete a call transcript by transcript ID.", + "detailed": "Removes a call transcript identified by transcript ID from the HubSpot CRM." + }, + "return_annotation": "Confirmation of transcript deletion.", + "arguments": [ + { + "name": "transcript_id", + "alternative_names": [ + "call_transcript_id", + "transcript_identifier" + ], + "description": "The unique identifier for the call transcript you want to delete from the HubSpot CRM.", + "endpoint_argument_name": "transcriptId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/extensions/calling/transcripts/{transcriptId}", + "tags": [ + "Transcripts" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.extensions_calling_transcripts.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "transcriptId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users/search", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_crm_users", + "description": { + "tagline": "Perform a user search in the CRM database.", + "detailed": "Use this tool to search for users within the HubSpot CRM. It should be called when you need to retrieve user information based on specific criteria." + }, + "return_annotation": "Search results for CRM users.", + "arguments": [ + { + "name": "search_criteria", + "alternative_names": [ + "user_search_filters", + "query_parameters" + ], + "description": "A JSON object containing search parameters such as query string, limit, sorting order, properties to include, and filters for refining the CRM user search.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users/search", + "tags": [ + "Search" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Describes a search request", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "type": "object", + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. ", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "required": [ + "operator", + "propertyName" + ] + } + } + }, + "required": [ + "filters" + ] + } + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_users_batch", + "description": { + "tagline": "Create a batch of users in the CRM system.", + "detailed": "Use this tool to create multiple users at once in the HubSpot CRM. It should be called when there is a need to add multiple users efficiently through a single command." + }, + "return_annotation": "Information about the created users batch.", + "arguments": [ + { + "name": "users_batch_request", + "alternative_names": [ + "users_creation_payload", + "user_batch_data" + ], + "description": "A JSON object containing an array of user objects to be created. Each user must include details such as associations, properties, and an optional objectWriteTraceId. Use for bulk user creation in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of users", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "associations", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_users_batch", + "description": { + "tagline": "Archives a batch of users by their IDs in HubSpot CRM.", + "detailed": "Use this tool to archive multiple users at once by providing their IDs to the HubSpot CRM system." + }, + "return_annotation": "Confirmation of user batch archiving.", + "arguments": [ + { + "name": "user_ids_to_archive", + "alternative_names": [ + "ids_of_users_to_archive", + "user_identifiers" + ], + "description": "A JSON array of user IDs to be archived in HubSpot CRM.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Archive a batch of users by ID", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_hubspot_user_records", + "description": { + "tagline": "Retrieve HubSpot user records by ID or unique property.", + "detailed": "Use this tool to fetch HubSpot CRM user records by providing a record ID or specifying a custom unique value property with the `idProperty` parameter." + }, + "return_annotation": "User records retrieved by ID or unique property.", + "arguments": [ + { + "name": "user_record_retrieval_request", + "alternative_names": [ + "user_data_request_body", + "hubspot_record_input" + ], + "description": "Details for retrieving HubSpot user records, including custom properties, IDs, and historic changes.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "fetch_archived_results_only", + "include_only_archived_records" + ], + "description": "Specify True to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of users by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users/batch/upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_hubspot_users", + "description": { + "tagline": "Create or update user records in HubSpot CRM.", + "detailed": "This tool is used to create or update user records in HubSpot CRM by specifying a unique property value through the `idProperty` query parameter. It is helpful for maintaining and synchronizing user data in HubSpot." + }, + "return_annotation": "Confirmation of user records created or updated.", + "arguments": [ + { + "name": "user_records_data", + "alternative_names": [ + "user_object_data", + "user_entries" + ], + "description": "A JSON array of user objects to be upserted. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties` to define unique user records and their attributes.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users/batch/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of users by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/users/{userId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_user_info", + "description": { + "tagline": "Retrieves user information from HubSpot CRM using user ID.", + "detailed": "Use this tool to fetch detailed information about a user in HubSpot CRM by specifying the user's unique ID. You can control the returned data by using specific query parameters." + }, + "return_annotation": "Detailed user information from HubSpot CRM.", + "arguments": [ + { + "name": "user_identifier", + "alternative_names": [ + "user_id", + "user_unique_id" + ], + "description": "The unique identifier for the user. This can be the internal object ID or a property value specified by `idProperty`.", + "endpoint_argument_name": "userId" + }, + { + "name": "properties_to_return", + "alternative_names": [ + "requested_properties", + "properties_list" + ], + "description": "A list of user properties to return in the response. If any specified properties are not present, they will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "history_properties_list", + "properties_with_past_values" + ], + "description": "List of property names to return with their value history for the user.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "object_associations", + "alternative_names": [ + "related_object_types", + "association_types" + ], + "description": "Comma separated list of object types to retrieve associated IDs for in the user info response.", + "endpoint_argument_name": "associations" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "identifier_property", + "unique_id_property" + ], + "description": "The name of a property with unique values to identify the object.", + "endpoint_argument_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "alternative_names": [ + "fetch_archived_only", + "include_only_archived" + ], + "description": "Set to true to return only archived results. Set to false to exclude archived items from results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/users/{userId}", + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{userId}`. `{userId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "userId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/crm/v3/objects/users/{userId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_user", + "description": { + "tagline": "Delete a user and move to recycling bin.", + "detailed": "" + }, + "return_annotation": "Confirmation of user deletion from the CRM.", + "arguments": [ + { + "name": "user_id_to_delete", + "alternative_names": [ + "target_user_id", + "user_identifier" + ], + "description": "The unique identifier of the user to delete and move to the recycling bin.", + "endpoint_argument_name": "userId" + } + ] + }, + "method": "DELETE", + "path": "/crm/v3/objects/users/{userId}", + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{userId}` to the recycling bin.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "userId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/crm/v3/objects/users/{userId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_user", + "description": { + "tagline": "Update user details in HubSpot CRM.", + "detailed": "This tool updates specific user information in HubSpot CRM for a given user ID or a unique property value if specified. Use this tool when you need to modify or clear user property values, bearing in mind read-only and non-existent properties will cause errors." + }, + "return_annotation": "Result of updating user details in HubSpot CRM.", + "arguments": [ + { + "name": "user_id", + "alternative_names": [ + "unique_user_identifier", + "hubspot_user_id" + ], + "description": "The internal user ID or unique property value to identify the user for updating.", + "endpoint_argument_name": "userId" + }, + { + "name": "user_properties_to_update", + "alternative_names": [ + "user_update_properties", + "user_details_update" + ], + "description": "A JSON object containing key-value pairs of user properties to update. Specify properties to modify or clear.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "unique_property_name", + "alternative_names": [ + "unique_identifier_property", + "property_name_for_identification" + ], + "description": "Specifies the name of a property with unique values for identifying the user object. Use this if not using userId.", + "endpoint_argument_name": "idProperty" + } + ] + }, + "method": "PATCH", + "path": "/crm/v3/objects/users/{userId}", + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{userId}`or optionally a unique property value as specified by the `idProperty` query param. `{userId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "idProperty", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "description": "The name of a property whose values are unique for this object", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "userId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "properties": { + "properties": { + "type": "object", + "description": "Key value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_multiple_users", + "description": { + "tagline": "Update multiple users in HubSpot CRM by internal ID or unique properties.", + "detailed": "This tool updates a batch of users in HubSpot CRM using either their internal IDs or unique property values. Use this tool to efficiently update information for multiple users at once." + }, + "return_annotation": "Information about the updated users.", + "arguments": [ + { + "name": "user_update_data", + "alternative_names": [ + "users_update_payload", + "batch_users_update_data" + ], + "description": "A JSON object containing an array of user update data, each with unique identifiers and property updates. Includes idProperty, objectWriteTraceId, id, and properties for each user.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of users by internal ID, or unique property values", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "description": "Key-value pairs representing the properties of the object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/crm/v3/objects/users", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_users_page", + "description": { + "tagline": "Fetch a page of users from the CRM.", + "detailed": "Use this tool to read a page of users from the HubSpot CRM. You can control which user properties are returned by using the appropriate query parameters." + }, + "return_annotation": "A page of user data from the CRM.", + "arguments": [ + { + "name": "max_results_per_page", + "alternative_names": [ + "page_size_limit", + "results_count" + ], + "description": "Specify the maximum number of results to display per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "paging_cursor_token", + "alternative_names": [ + "last_read_resource_token", + "pagination_token" + ], + "description": "The paging cursor token from the last read resource, used to fetch next set of results.", + "endpoint_argument_name": "after" + }, + { + "name": "user_properties", + "alternative_names": [ + "user_attributes", + "user_details" + ], + "description": "A list of user property names to include in the response. Any non-existent properties will be ignored.", + "endpoint_argument_name": "properties" + }, + { + "name": "properties_with_history", + "alternative_names": [ + "properties_with_history_list", + "detailed_properties_history" + ], + "description": "List of properties to return with their history. Reduces the maximum number of users per request.", + "endpoint_argument_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "alternative_names": [ + "related_object_types", + "linked_entity_types" + ], + "description": "A list of object types for which associated IDs should be retrieved. If specified associations do not exist, they will be ignored.", + "endpoint_argument_name": "associations" + }, + { + "name": "return_only_archived", + "alternative_names": [ + "include_only_archived", + "show_archived_only" + ], + "description": "Set to true to return only results that have been archived.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/crm/v3/objects/users", + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of users. Control what is returned via the `properties` query param.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.read" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [ + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "propertiesWithHistory", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of users that can be read by a single request." + }, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of users that can be read by a single request.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "associations", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": false, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/crm/v3/objects/users", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_crm_user", + "description": { + "tagline": "Create a new user in the CRM and retrieve their ID.", + "detailed": "Use this tool to create a new user in the HubSpot CRM system. The tool will return a detailed user object, including the newly assigned ID. This is useful for adding new users to your CRM database." + }, + "return_annotation": "Details of the created user, including their ID.", + "arguments": [ + { + "name": "user_properties", + "alternative_names": [ + "user_details", + "user_data" + ], + "description": "A JSON object containing key-value pairs for setting properties of the new user. It can include user associations and specific property settings.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/crm/v3/objects/users", + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a user with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard users is provided.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.users.write" + ], + "security_schemes": [ + "oauth2", + "oauth2_legacy", + "private_apps", + "private_apps_legacy" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.", + "properties": { + "associations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "type": "object", + "description": "Defines the type, direction, and details of the relationship between two CRM objects.", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "required": [ + "associationCategory", + "associationTypeId" + ] + } + }, + "to": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "to", + "types" + ] + } + }, + "properties": { + "type": "object", + "description": "Key-value pairs for setting properties for the new object.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + } + ], + "security_scheme_key_selected": "oauth2", + "security_scheme_selected": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://app.hubspot.com/oauth/authorize", + "tokenUrl": "https://api.hubapi.com/oauth/v1/token", + "scopes": { + "oauth": "User and Account Information", + "crm.objects.deals.read": "View deal records", + "crm.objects.subscriptions.read": "Read Commerce Subscriptions", + "crm.objects.services.read": "Read services", + "crm.objects.orders.read": "Read Orders", + "crm.objects.listings.write": "Write listings", + "crm.objects.custom.read": "View custom object records", + "crm.objects.companies.write": "View company records", + "crm.objects.custom.sensitive.write.v2": "Change custom object records (sensitive)", + "crm.objects.custom.highly_sensitive.write.v2": "Change custom object records (highly-sensitive)", + "crm.objects.companies.read": "Create or update company records", + "crm.objects.appointments.sensitive.read.v2": "Read appointments (sensitive)", + "crm.objects.contacts.highly_sensitive.read.v2": "View contact records (highly-sensitive)", + "crm.objects.companies.sensitive.read.v2": "View sensitive properties on company records", + "media_bridge.read": "Read media and media events", + "crm.objects.deals.highly_sensitive.read.v2": "View deal records (highly-sensitive)", + "crm.objects.contacts.highly_sensitive.write.v2": "Change contact records (highly-sensitive)", + "crm.objects.companies.highly_sensitive.read.v2": "View company records (highly-sensitive)", + "crm.objects.commercepayments.write": "Write commerce payments", + "crm.objects.invoices.write": "Write invoices", + "crm.objects.contacts.sensitive.write.v2": "Create or update sensitive properties on contact records", + "crm.objects.users.write": "Write User CRM objects", + "crm.objects.custom.sensitive.read.v2": "View custom object records (sensitive)", + "crm.objects.users.read": "Read User CRM objects", + "crm.objects.partner-services.read": "View Partner Service CRM objects", + "crm.objects.orders.write": "Write orders", + "crm.objects.partner-services.write": "Modify Partner Service CRM objects", + "crm.objects.appointments.write": "Write appointments", + "crm.objects.carts.write": "Write cart", + "tickets": "Read and write tickets", + "crm.objects.commercepayments.read": "Read the COMMERCE_PAYMENT object.", + "crm.objects.products.write": "Write to my Product Library", + "crm.objects.services.write": "Write services", + "crm.objects.subscriptions.write": "Write to Commerce Subscriptions", + "crm.objects.deals.sensitive.write.v2": "Create or update sensitive properties on deal records", + "crm.objects.contacts.read": "View contact records", + "crm.objects.appointments.sensitive.write.v2": "Write appointments (sensitive)", + "crm.objects.invoices.read": "Read invoices objects", + "tickets.sensitive.v2": "Tickets (sensitive)", + "crm.objects.custom.write": "Change custom object records", + "crm.objects.deals.write": "Create or update deal records", + "e-commerce": "e-commerce", + "crm.objects.appointments.read": "Read appointments", + "crm.objects.companies.sensitive.write.v2": "Create or update sensitive properties on company records", + "crm.objects.deals.highly_sensitive.write.v2": "Change deal records (highly-sensitive)", + "crm.objects.custom.highly_sensitive.read.v2": "View custom object records (highly-sensitive)", + "crm.objects.companies.highly_sensitive.write.v2": "Change company records (highly-sensitive)", + "crm.objects.goals.write": "Write goals", + "crm.objects.line_items.write": "Line Items", + "crm.objects.contacts.write": "Create or update contact records", + "crm.objects.goals.read": "Read goals", + "crm.objects.partner-clients.write": "Modify Partner Client CRM objects", + "crm.objects.line_items.read": "Line Items", + "crm.objects.deals.sensitive.read.v2": "View sensitive properties on deal records", + "tickets.highly_sensitive.v2": "Tickets (highly-sensitive)", + "crm.objects.quotes.write": "Quotes", + "crm.objects.leads.read": "Read lead objects", + "crm.objects.leads.write": "Modify lead objects", + "crm.objects.carts.read": "Read carts", + "crm.objects.quotes.read": "Quotes", + "crm.objects.courses.write": "Write courses", + "crm.objects.partner-clients.read": "View Partner Client CRM objects", + "crm.objects.courses.read": "Read courses", + "crm.objects.listings.read": "Read listings", + "crm.objects.contacts.sensitive.read.v2": "View sensitive properties on contact records", + "crm.objects.products.read": "Read from my Product Library", + "crm.objects.owners.read": "View owner records", + "crm.dealsplits.read_write": "Create or retrieve deal splits on a deal", + "crm.objects.feedback_submissions.read": "View feedback survey submissions", + "crm.schemas.custom.read": "View custom object definitions", + "crm.schemas.custom.write": "Change custom object definitions", + "crm.lists.read": "View segments", + "crm.lists.write": "Create or update segments", + "cms.membership.access_groups.write": "Write membership access groups.", + "automation": "Read from and write to my Workflows", + "crm.schemas.carts.read": "Read cart property settings", + "crm.schemas.quotes.read": "Quotes schemas", + "crm.schemas.listings.read": "Read listings property settings", + "crm.schemas.services.read": "Read services property settings", + "crm.schemas.line_items.read": "Line Items schemas", + "crm.schemas.subscriptions.read": "Read subscriptions schema", + "crm.schemas.companies.read": "View company property settings", + "crm.schemas.orders.read": "Read order property settings", + "crm.schemas.deals.read": "View deals property settings", + "crm.schemas.appointments.read": "Read appointments property settings", + "crm.schemas.courses.read": "Read courses property settings", + "crm.objects.marketing_events.write": "Write marketing events", + "crm.schemas.contacts.read": "View contacts property settings", + "crm.schemas.invoices.read": "Read invoices schema", + "timeline": "Create timeline events", + "crm.schemas.commercepayments.read": "Read the COMMERCE_PAYMENT properties.", + "crm.pipelines.orders.read": "View details about your cart pipelines including pipeline stage information", + "crm.objects.marketing_events.read": "Read marketing events", + "crm.schemas.subscriptions.write": "Write to Subscription properties", + "crm.schemas.listings.write": "Write listings property settings", + "crm.schemas.invoices.write": "Write invoices schema", + "crm.schemas.orders.write": "Write order property settings", + "crm.pipelines.orders.write": "Create, delete, or make to your order pipelines or their respective stages", + "crm.schemas.commercepayments.write": "Write commerce payments property settings", + "crm.schemas.services.write": "Write services property settings", + "crm.schemas.courses.write": "Write courses property settings", + "crm.schemas.deals.write": "Create new deal properties or change deal property settings", + "crm.schemas.appointments.write": "Write appointments property settings", + "crm.schemas.contacts.write": "Create new contact properties or change contact property settings", + "crm.schemas.carts.write": "Write cart property settings", + "crm.schemas.companies.write": "Create new company properties or change company property settings", + "crm.extensions_calling_transcripts.write": "Provides possibility to save and delete transcriptions", + "crm.extensions_calling_transcripts.read": "Provides possibility to read transcriptions" + } + } + } + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/openapi.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/openapi.json new file mode 100644 index 00000000..6a92afa9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/moar/openapi.json @@ -0,0 +1,231151 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Appointments", + "version": "v3", + "x-hubspot-product-tier-requirements": { + "marketing": "FREE", + "sales": "FREE", + "service": "FREE", + "cms": "FREE", + "commerce": "FREE", + "crmHub": "FREE", + "dataHub": "FREE" + }, + "x-hubspot-introduction": "Use the appointments API to create and manage CRM records that represent information about an encounter or service for an individual. Identify the appointment object type with its object type ID 0-421", + "x-moar-merged": true, + "x-moar-merged-count": 51 + }, + "servers": [ + { + "url": "https://api.hubapi.com" + }, + { + "url": "https://api.hubapiqa.com" + } + ], + "tags": [ + { + "name": "Batch" + }, + { + "name": "Basic" + }, + { + "name": "Public_Object__SE_PT_EM_BE_R_2025" + }, + { + "name": "Associations" + }, + { + "name": "GDPR" + }, + { + "name": "Search" + }, + { + "name": "Public_Object_Search_Post__SE_PT_EM_BE_R_2025" + }, + { + "name": "Public_Object" + }, + { + "name": "Types" + }, + { + "name": "Subscriptions" + }, + { + "name": "Owners" + }, + { + "name": "Limits" + }, + { + "name": "Lists" + }, + { + "name": "Memberships" + }, + { + "name": "Folders" + }, + { + "name": "Mapping" + }, + { + "name": "Enablement" + }, + { + "name": "Pipeline Audits" + }, + { + "name": "Pipelines" + }, + { + "name": "Pipeline Stages" + }, + { + "name": "Pipeline Stage Audits" + }, + { + "name": "Groups" + }, + { + "name": "Core" + }, + { + "name": "Public_Property_Validations" + }, + { + "name": "Tokens" + }, + { + "name": "Events" + }, + { + "name": "Templates" + }, + { + "name": "Transcripts" + } + ], + "paths": { + "/crm/objects/v3/{objectType}/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of appointments by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/objects/v3/{objectType}/batch/read", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}": { + "put": { + "tags": [ + "Associations" + ], + "summary": "", + "description": "", + "operationId": "put-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Associations" + ], + "summary": "", + "description": "", + "operationId": "delete-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of appointments by internal ID, or unique property values", + "description": "Update multiple appointments using their internal IDs or unique property values.", + "operationId": "post-/crm/objects/v3/{objectType}/batch/update", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of appointments. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/objects/v3/{objectType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of appointments that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a appointment with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard appointments is provided.", + "operationId": "post-/crm/objects/v3/{objectType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "createdResourceId": { + "type": "string", + "description": "The unique identifier of the newly created resource." + }, + "location": { + "type": "string", + "description": "The URL location of the newly created resource." + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of appointments", + "description": "Create multiple appointments in a single request.", + "operationId": "post-/crm/objects/v3/{objectType}/batch/create", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}": { + "get": { + "tags": [ + "Associations" + ], + "summary": "", + "description": "", + "operationId": "get-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + }, + { + "name": "includeFA", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of appointments by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/objects/v3/{objectType}/batch/upsert", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for appointments using filters, sorting, and pagination to retrieve specific records.", + "description": "Search for appointments based on specified criteria.", + "operationId": "post-/crm/objects/v3/{objectType}/search", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ], + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of appointments by ID", + "description": "Archive multiple appointments using their IDs.", + "operationId": "post-/crm/objects/v3/{objectType}/batch/archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/gdpr-delete": { + "post": { + "tags": [ + "GDPR" + ], + "summary": "", + "description": "", + "operationId": "post-/crm/objects/v3/{objectType}/gdpr-delete", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectId": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/{objectId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{appointmentId}`. `{appointmentId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/objects/v3/{objectType}/{objectId}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{appointmentId}` to the recycling bin.", + "operationId": "delete-/crm/objects/v3/{objectType}/{objectId}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{appointmentId}`or optionally a unique property value as specified by the `idProperty` query param. `{appointmentId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/objects/v3/{objectType}/{objectId}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/objects/v3/{objectType}/merge": { + "post": { + "tags": [ + "Public_Object" + ], + "summary": "", + "description": "", + "operationId": "post-/crm/objects/v3/{objectType}/merge", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string" + }, + "primaryObjectId": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "operationId": "post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create_create", + "parameters": [ + { + "name": "fromObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "from", + "to", + "type" + ], + "type": "object", + "properties": { + "from": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "type": { + "type": "string" + } + }, + "example": { + "from": { + "id": "53628" + }, + "to": { + "id": "12726" + }, + "type": "contact_to_company" + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "from", + "to", + "type" + ], + "type": "object", + "properties": { + "from": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "type": { + "type": "string" + } + }, + "example": { + "from": { + "id": "53628" + }, + "to": { + "id": "12726" + }, + "type": "contact_to_company" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "operationId": "post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read_read", + "parameters": [ + { + "name": "fromObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "from", + "to" + ], + "type": "object", + "properties": { + "from": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "to": { + "type": "array", + "description": "The IDs of objects that are associated with the object identified by the ID in 'from'.", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + }, + "example": { + "from": { + "id": "53628" + }, + "to": [ + { + "id": "12726", + "type": "contact_to_company" + }, + { + "id": "61352", + "type": "contact_to_company" + } + ] + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "", + "description": "", + "operationId": "post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive_archive", + "parameters": [ + { + "name": "fromObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "from", + "to", + "type" + ], + "type": "object", + "properties": { + "from": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "type": { + "type": "string" + } + }, + "example": { + "from": { + "id": "53628" + }, + "to": { + "id": "12726" + }, + "type": "contact_to_company" + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/associations/{fromObjectType}/{toObjectType}/types": { + "get": { + "tags": [ + "Types" + ], + "operationId": "get-/crm/v3/associations/{fromObjectType}/{toObjectType}/types_getAll", + "parameters": [ + { + "name": "fromObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "example": { + "id": "1", + "name": "contact_to_company" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of calls", + "description": "Create a batch of calls. The `inputs` array can contain a `properties` object to define property values for each record, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "operationId": "post-/crm/v3/objects/calls/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of calls by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/calls/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of calls by internal ID, or unique property values", + "description": "Retrieve a batch of calls by ID.", + "operationId": "post-/crm/v3/objects/calls/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of calls by internal ID, or unique property values", + "description": "Update a batch of calls by ID.", + "operationId": "post-/crm/v3/objects/calls/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of calls. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/calls_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of calls that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a call with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard calls is provided.", + "operationId": "post-/crm/v3/objects/calls_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/{callId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{callId}`. `{callId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/calls/{callId}_getById", + "parameters": [ + { + "name": "callId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{callId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/calls/{callId}_archive", + "parameters": [ + { + "name": "callId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{callId}`or optionally a unique property value as specified by the `idProperty` query param. `{callId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/calls/{callId}_update", + "parameters": [ + { + "name": "callId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of calls by ID", + "description": "Archive a batch of calls by ID. Deleted calls can be restored within 90 days of being deleted, but call recordings recording will be permanently deleted. Learn more about [restoring activity records](https://knowledge.hubspot.com/records/restore-deleted-activity-in-a-record).", + "operationId": "post-/crm/v3/objects/calls/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/calls/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for calls", + "description": "Search for calls by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "operationId": "post-/crm/v3/objects/calls/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of carts by ID", + "operationId": "post-/crm/v3/objects/carts/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of carts", + "operationId": "post-/crm/v3/objects/carts/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of carts. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/carts", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of carts that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a cart with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard carts is provided.", + "operationId": "post-/crm/v3/objects/carts", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of carts by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/carts/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of carts by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/carts/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of carts by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/carts/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/carts/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/carts/{cartId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{cartId}`. `{cartId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/carts/{cartId}", + "parameters": [ + { + "name": "cartId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{cartId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/carts/{cartId}", + "parameters": [ + { + "name": "cartId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{cartId}`or optionally a unique property value as specified by the `idProperty` query param. `{cartId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/carts/{cartId}", + "parameters": [ + { + "name": "cartId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of commerce payments by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/commerce_payments/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of commerce payments", + "operationId": "post-/crm/v3/objects/commerce_payments/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/{commercePaymentId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{commercePaymentId}`. `{commercePaymentId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/commerce_payments/{commercePaymentId}", + "parameters": [ + { + "name": "commercePaymentId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{commercePaymentId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/commerce_payments/{commercePaymentId}", + "parameters": [ + { + "name": "commercePaymentId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{commercePaymentId}`or optionally a unique property value as specified by the `idProperty` query param. `{commercePaymentId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/commerce_payments/{commercePaymentId}", + "parameters": [ + { + "name": "commercePaymentId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of commerce payments by ID", + "operationId": "post-/crm/v3/objects/commerce_payments/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of commerce payments by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/commerce_payments/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of commerce payments by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/commerce_payments/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/commerce_payments/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/commerce_payments": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of commerce payments. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/commerce_payments", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of commerce payments that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a commerce payment with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard commerce payments is provided.", + "operationId": "post-/crm/v3/objects/commerce_payments", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of subscriptions by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/subscriptions/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of subscriptions by ID", + "operationId": "post-/crm/v3/objects/subscriptions/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/subscriptions/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of subscriptions. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/subscriptions", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of subscriptions that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a subscription with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard subscriptions is provided.", + "operationId": "post-/crm/v3/objects/subscriptions", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of subscriptions by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/subscriptions/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of subscriptions by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/subscriptions/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of subscriptions", + "operationId": "post-/crm/v3/objects/subscriptions/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/subscriptions/{subscriptionId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{subscriptionId}`. `{subscriptionId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/subscriptions/{subscriptionId}", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{subscriptionId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/subscriptions/{subscriptionId}", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{subscriptionId}`or optionally a unique property value as specified by the `idProperty` query param. `{subscriptionId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/subscriptions/{subscriptionId}", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of communications by internal ID, or unique property values", + "description": "Update a batch of messages by ID (`communicationId`) or unique property value (`idProperty`). Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "post-/crm/v3/objects/communications/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of communications by ID", + "description": "Delete a batch of messages by ID. A deleted message can be restored within 90 days of being deleted. Learn more about [restoring activity records](https://knowledge.hubspot.com/records/restore-deleted-activity-in-a-record).", + "operationId": "post-/crm/v3/objects/communications/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of communications by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/communications/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of communications. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/communications_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of communications that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a communication with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard communications is provided.", + "operationId": "post-/crm/v3/objects/communications_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/{communicationId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{communicationId}`. `{communicationId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/communications/{communicationId}_getById", + "parameters": [ + { + "name": "communicationId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{communicationId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/communications/{communicationId}_archive", + "parameters": [ + { + "name": "communicationId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{communicationId}`or optionally a unique property value as specified by the `idProperty` query param. `{communicationId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/communications/{communicationId}_update", + "parameters": [ + { + "name": "communicationId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for messages", + "description": "Search for messages by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "operationId": "post-/crm/v3/objects/communications/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of communications by internal ID, or unique property values", + "description": "Retrieve a batch of messages by ID (`communicationId`) or unique property value (`idProperty`). ", + "operationId": "post-/crm/v3/objects/communications/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/communications/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of communications", + "description": "Create a batch of messages. The `inputs` array can contain a `properties` object to define property values for each message, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "operationId": "post-/crm/v3/objects/communications/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Retrieve a batch of companies", + "description": "Retrieve a batch of companies by ID (`companyId`) or by a unique property (`idProperty`). You can specify what is returned using the `properties` query parameter.", + "operationId": "post-/crm/v3/objects/companies/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Retrieve companies", + "description": "Retrieve all companies, using query parameters to control the information that gets returned.", + "operationId": "get-/crm/v3/objects/companies_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of companies that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create a company", + "description": "Create a single company. Include a `properties` object to define [property values](https://developers.hubspot.com/docs/guides/api/crm/properties) for the company, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "operationId": "post-/crm/v3/objects/companies_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The company property values to set." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for companies", + "description": "Search for companies by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "operationId": "post-/crm/v3/objects/companies/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/{companyId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Retrieve a company", + "description": "Retrieve a company by its ID (`companyId`) or by a unique property (`idProperty`). You can specify what is returned using the `properties` query parameter.", + "operationId": "get-/crm/v3/objects/companies/{companyId}_getById", + "parameters": [ + { + "name": "companyId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive a company", + "description": "Delete a company by ID. Deleted companies can be restored within 90 days of deletion. Learn more about [restoring records](https://knowledge.hubspot.com/records/restore-deleted-records).", + "operationId": "delete-/crm/v3/objects/companies/{companyId}_archive", + "parameters": [ + { + "name": "companyId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update a company", + "description": "Update a company by ID (`companyId`) or unique property value (`idProperty`). Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/companies/{companyId}_update", + "parameters": [ + { + "name": "companyId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The company property values to set." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of companies by unique property values", + "description": "Create or update companies identified by a unique property value as specified by the `idProperty` query parameter. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/companies/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of companies", + "description": "Update a batch of companies by ID.", + "operationId": "post-/crm/v3/objects/companies/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of companies", + "description": "Create a batch of companies. The `inputs` array can contain a `properties` object to define property values for each company, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "operationId": "post-/crm/v3/objects/companies/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of companies", + "description": "Delete a batch of companies by ID. Deleted companies can be restored within 90 days of deletion. Learn more about [restoring records](https://knowledge.hubspot.com/records/restore-deleted-records).", + "operationId": "post-/crm/v3/objects/companies/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/companies/merge": { + "post": { + "tags": [ + "Basic" + ], + "summary": "Merge two companies", + "description": "Merge two company records. Learn more about [merging records](https://knowledge.hubspot.com/records/merge-records).", + "operationId": "post-/crm/v3/objects/companies/merge_merge", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string", + "description": "The ID of the company to merge into the primary." + }, + "primaryObjectId": { + "type": "string", + "description": "The ID of the primary company, which the other will merge into." + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of contacts by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/contacts/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/{contactId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/contacts/{contactId}", + "parameters": [ + { + "name": "contactId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object type", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "properties": { + "company": "Biglytics", + "createdate": "2019-10-30T03:30:17.883Z", + "email": "bcooper@biglytics.net", + "firstname": "Bryan", + "lastmodifieddate": "2019-12-07T16:50:06.678Z", + "lastname": "Cooper", + "phone": "(877) 929-0687", + "website": "biglytics.net" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{contactId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/contacts/{contactId}", + "parameters": [ + { + "name": "contactId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{contactId}`. `{contactId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/contacts/{contactId}", + "parameters": [ + { + "name": "contactId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object type", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + } + }, + "example": { + "properties": { + "email": "bcooper@biglytics.net", + "phone": "(877) 929-0687", + "company": "Biglytics", + "website": "biglytics.net", + "lastname": "Cooper", + "firstname": "Bryan" + }, + "associations": [] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "example": false + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + } + }, + "id": { + "type": "string", + "example": "512" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "id": "512", + "properties": { + "company": "Biglytics", + "createdate": "2019-10-30T03:30:17.883Z", + "email": "bcooper@biglytics.net", + "firstname": "Bryan", + "lastmodifieddate": "2019-12-07T16:50:06.678Z", + "lastname": "Cooper", + "phone": "(877) 929-0687", + "website": "biglytics.net" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/merge": { + "post": { + "tags": [ + "Public_Object" + ], + "summary": "Merge two contacts with same type", + "operationId": "post-/crm/v3/objects/contacts/merge", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string" + }, + "primaryObjectId": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "example": false + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + } + }, + "id": { + "type": "string", + "example": "512" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "id": "512", + "properties": { + "company": "Biglytics", + "createdate": "2019-10-30T03:30:17.883Z", + "email": "bcooper@biglytics.net", + "firstname": "Bryan", + "lastmodifieddate": "2019-12-07T16:50:06.678Z", + "lastname": "Cooper", + "phone": "(877) 929-0687", + "website": "biglytics.net" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of contacts by ID", + "operationId": "post-/crm/v3/objects/contacts/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of contacts", + "operationId": "post-/crm/v3/objects/contacts/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of contacts", + "operationId": "post-/crm/v3/objects/contacts/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/gdpr-delete": { + "post": { + "tags": [ + "GDPR" + ], + "summary": "GDPR DELETE", + "description": "Permanently delete a contact and all associated content to follow GDPR. Use optional property 'idProperty' set to 'email' to identify contact by email address. If email address is not found, the email address will be added to a blocklist and prevent it from being used in the future.", + "operationId": "post-/crm/v3/objects/contacts/gdpr-delete", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "objectId": { + "type": "string" + }, + "idProperty": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of contacts. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/contacts", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a contact with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contacts is provided.", + "operationId": "post-/crm/v3/objects/contacts", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "example": { + "properties": { + "email": "bcooper@biglytics.net", + "phone": "(877) 929-0687", + "company": "Biglytics", + "website": "biglytics.net", + "lastname": "Cooper", + "firstname": "Bryan" + }, + "associations": [] + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "example": false + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + } + }, + "id": { + "type": "string", + "example": "512" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "id": "512", + "properties": { + "company": "Biglytics", + "createdate": "2019-10-30T03:30:17.883Z", + "email": "bcooper@biglytics.net", + "firstname": "Bryan", + "lastmodifieddate": "2019-12-07T16:50:06.678Z", + "lastname": "Cooper", + "phone": "(877) 929-0687", + "website": "biglytics.net" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/contacts/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ], + "type": "object", + "properties": { + "query": { + "type": "string" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "after": { + "type": "string" + }, + "sorts": { + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapiqa.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contacts/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of contacts", + "description": "Upsert a batch of contacts. The `inputs` array can contain a `properties` object to define property values for each record.", + "operationId": "post-/crm/v3/objects/contacts/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/contracts/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/{contractId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{contractId}`. `{contractId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/contracts/{contractId}", + "parameters": [ + { + "name": "contractId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{contractId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/contracts/{contractId}", + "parameters": [ + { + "name": "contractId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{contractId}`or optionally a unique property value as specified by the `idProperty` query param. `{contractId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/contracts/{contractId}", + "parameters": [ + { + "name": "contractId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of contracts by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/contracts/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of contracts by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/contracts/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of contracts", + "operationId": "post-/crm/v3/objects/contracts/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of contracts by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/contracts/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of contracts. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/contracts", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of contracts that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a contract with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard contracts is provided.", + "operationId": "post-/crm/v3/objects/contracts", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/contracts/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of contracts by ID", + "operationId": "post-/crm/v3/objects/contracts/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "private_apps_legacy": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of courses. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-410", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of courses that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a course with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard courses is provided.", + "operationId": "post-/crm/v3/objects/0-410", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of courses by ID", + "operationId": "post-/crm/v3/objects/0-410/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/{courseId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{courseId}`. `{courseId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-410/{courseId}", + "parameters": [ + { + "name": "courseId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{courseId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/0-410/{courseId}", + "parameters": [ + { + "name": "courseId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{courseId}`or optionally a unique property value as specified by the `idProperty` query param. `{courseId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/0-410/{courseId}", + "parameters": [ + { + "name": "courseId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of courses", + "operationId": "post-/crm/v3/objects/0-410/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of courses by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/0-410/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/0-410/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of courses by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/0-410/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-410/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of courses by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/0-410/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/owners/": { + "get": { + "tags": [ + "Owners" + ], + "summary": "Retrieve a paginated list of owners available in the account.", + "description": "Retrieve a paginated list of owners available in the account.", + "operationId": "get-/crm/v3/owners/", + "parameters": [ + { + "name": "email", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + } + }, + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "type", + "updatedAt" + ], + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "The first name of the owner." + }, + "lastName": { + "type": "string", + "description": "The last name of the owner." + }, + "createdAt": { + "type": "string", + "description": "The date and time when the owner was created.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Indicates whether the owner is archived." + }, + "teams": { + "type": "array", + "items": { + "required": [ + "id", + "name", + "primary" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "primary": { + "type": "boolean" + } + } + } + }, + "id": { + "type": "string", + "description": "The unique identifier of the owner." + }, + "userIdIncludingInactive": { + "type": "integer", + "description": "The user ID of the owner, including inactive users.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The type of the owner, which can be either PERSON or QUEUE.", + "enum": [ + "PERSON", + "QUEUE" + ] + }, + "userId": { + "type": "integer", + "description": "The user ID of the owner.", + "format": "int32" + }, + "email": { + "type": "string", + "description": "The email address of the owner." + }, + "updatedAt": { + "type": "string", + "description": "The date and time when the owner was last updated.", + "format": "date-time" + } + }, + "example": { + "id": "6166860", + "email": "jsmith@example.com", + "firstName": "John", + "lastName": "Smith", + "userId": 1296619, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "teams": [ + { + "id": "178588", + "name": "West Coast Sales", + "primary": true + }, + { + "id": "178590", + "name": "California Sales", + "primary": false + } + ] + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/owners/{ownerId}": { + "get": { + "tags": [ + "Owners" + ], + "summary": "Retrieve a paginated list of owners available in the account.", + "description": "Retrieve details of a specific owner using either their 'id' or 'userId'.", + "operationId": "get-/crm/v3/owners/{ownerId}", + "parameters": [ + { + "name": "ownerId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "idProperty", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "id", + "enum": [ + "id", + "userId" + ] + } + }, + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "id", + "type", + "updatedAt" + ], + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "The first name of the owner." + }, + "lastName": { + "type": "string", + "description": "The last name of the owner." + }, + "createdAt": { + "type": "string", + "description": "The date and time when the owner was created.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Indicates whether the owner is archived." + }, + "teams": { + "type": "array", + "items": { + "required": [ + "id", + "name", + "primary" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "primary": { + "type": "boolean" + } + } + } + }, + "id": { + "type": "string", + "description": "The unique identifier of the owner." + }, + "userIdIncludingInactive": { + "type": "integer", + "description": "The user ID of the owner, including inactive users.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The type of the owner, which can be either PERSON or QUEUE.", + "enum": [ + "PERSON", + "QUEUE" + ] + }, + "userId": { + "type": "integer", + "description": "The user ID of the owner.", + "format": "int32" + }, + "email": { + "type": "string", + "description": "The email address of the owner." + }, + "updatedAt": { + "type": "string", + "description": "The date and time when the owner was last updated.", + "format": "date-time" + } + }, + "example": { + "id": "6166860", + "email": "jsmith@example.com", + "firstName": "John", + "lastName": "Smith", + "userId": 1296619, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "teams": [ + { + "id": "178588", + "name": "West Coast Sales", + "primary": true + }, + { + "id": "178590", + "name": "California Sales", + "primary": false + } + ] + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of objects by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/{objectType}/batch/read_read", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/{objectId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{objectId}`. `{objectId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/{objectType}/{objectId}_getById", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{objectId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/{objectType}/{objectId}_archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{objectId}`or optionally a unique property value as specified by the `idProperty` query param. `{objectId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/{objectType}/{objectId}_update", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/merge": { + "post": { + "tags": [ + "Basic" + ], + "summary": "Merge two objects with same type", + "operationId": "post-/crm/v3/objects/{objectType}/merge_merge", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string" + }, + "primaryObjectId": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of objects by ID", + "operationId": "post-/crm/v3/objects/{objectType}/batch/archive_archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of objects by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/{objectType}/batch/update_update", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of objects", + "operationId": "post-/crm/v3/objects/{objectType}/batch/create_create", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of objects by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/{objectType}/batch/upsert", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of objects. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/{objectType}_getPage", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a CRM object with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard objects is provided.", + "operationId": "post-/crm/v3/objects/{objectType}_create", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/{objectType}/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/{objectType}/search_doSearch", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "oauth" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "oauth" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of deals by internal ID, or unique property values", + "description": "Update multiple deals using their internal IDs or unique property values.", + "operationId": "post-/crm/v3/objects/0-3/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for deals using various filters and criteria to retrieve specific records.", + "description": "Search for deals using specified criteria and filters.", + "operationId": "post-/crm/v3/objects/0-3/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of deals by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/0-3/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of deals by ID", + "description": "Archive multiple deals using their IDs.", + "operationId": "post-/crm/v3/objects/0-3/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of deals by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/0-3/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/{dealId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{dealId}`. `{dealId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-3/{dealId}_getById", + "parameters": [ + { + "name": "dealId", + "in": "path", + "description": "The unique identifier of the deal to be retrieved.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{dealId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/0-3/{dealId}_archive", + "parameters": [ + { + "name": "dealId", + "in": "path", + "description": "The unique identifier of the deal to be archived.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{dealId}`or optionally a unique property value as specified by the `idProperty` query param. `{dealId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/0-3/{dealId}_update", + "parameters": [ + { + "name": "dealId", + "in": "path", + "description": "The unique identifier of the deal to be updated.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of deals", + "description": "Create multiple deals in a single request.", + "operationId": "post-/crm/v3/objects/0-3/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of deals. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-3_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of deals that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a deal with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard deals is provided.", + "operationId": "post-/crm/v3/objects/0-3_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-3/merge": { + "post": { + "tags": [ + "Basic" + ], + "summary": "Merge two deals with same type", + "description": "Combine two deals of the same type into a single deal.", + "operationId": "post-/crm/v3/objects/0-3/merge_merge", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string" + }, + "primaryObjectId": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/deals/splits/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or replace deal splits for deals with the provided IDs. Deal split percentages for each deal must sum up to 1.0 (100%) and may have up to 8 decimal places", + "operationId": "post-/crm/v3/objects/deals/splits/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "required": [ + "ownerId", + "percentage" + ], + "type": "object", + "properties": { + "percentage": { + "type": "number" + }, + "ownerId": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "id": { + "type": "string" + } + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "id": { + "type": "string" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.dealsplits.read_write" + ] + }, + { + "oauth2": [ + "crm.dealsplits.read_write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/deals/splits/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of deal split objects by their associated deal object internal ID", + "operationId": "post-/crm/v3/objects/deals/splits/batch/read_read", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "id": { + "type": "string" + } + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "id": { + "type": "string" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.dealsplits.read_write" + ] + }, + { + "oauth2": [ + "crm.dealsplits.read_write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/discounts/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of discounts by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/discounts/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/{discountId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{discountId}`. `{discountId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/discounts/{discountId}", + "parameters": [ + { + "name": "discountId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{discountId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/discounts/{discountId}", + "parameters": [ + { + "name": "discountId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{discountId}`or optionally a unique property value as specified by the `idProperty` query param. `{discountId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/discounts/{discountId}", + "parameters": [ + { + "name": "discountId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of discounts", + "operationId": "post-/crm/v3/objects/discounts/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of discounts by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/discounts/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of discounts by ID", + "operationId": "post-/crm/v3/objects/discounts/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of discounts. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/discounts", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of discounts that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a discount with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard discounts is provided.", + "operationId": "post-/crm/v3/objects/discounts", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/discounts/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of discounts by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/discounts/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of emails", + "description": "Create a batch of emails with specified properties and return the created objects.", + "operationId": "post-/crm/v3/objects/emails/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of emails. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/emails_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of emails that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a email with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard emails is provided.", + "operationId": "post-/crm/v3/objects/emails_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of emails by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/emails/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of emails by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/emails/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/{emailId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{emailId}`. `{emailId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/emails/{emailId}_getById", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{emailId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/emails/{emailId}_archive", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{emailId}`or optionally a unique property value as specified by the `idProperty` query param. `{emailId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/emails/{emailId}_update", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of emails by ID", + "description": "Archive a batch of emails identified by their IDs.", + "operationId": "post-/crm/v3/objects/emails/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of emails by internal ID, or unique property values", + "description": "Update a batch of emails using their internal IDs or unique property values.", + "operationId": "post-/crm/v3/objects/emails/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/emails/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for emails using specified criteria and filters.", + "description": "Perform a search for emails based on the provided query parameters and return matching results.", + "operationId": "post-/crm/v3/objects/emails/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{feedbackSubmissionId}`. `{feedbackSubmissionId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}_getById", + "parameters": [ + { + "name": "feedbackSubmissionId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/feedback_submissions/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/feedback_submissions/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/feedback_submissions/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of feedback submissions by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/feedback_submissions/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/feedback_submissions": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of feedback submissions. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/feedback_submissions_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of feedback submissions that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/{feeId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{feeId}`. `{feeId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/fees/{feeId}", + "parameters": [ + { + "name": "feeId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{feeId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/fees/{feeId}", + "parameters": [ + { + "name": "feeId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{feeId}`or optionally a unique property value as specified by the `idProperty` query param. `{feeId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/fees/{feeId}", + "parameters": [ + { + "name": "feeId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of fees by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/fees/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of fees. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/fees", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of fees that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a fee with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard fees is provided.", + "operationId": "post-/crm/v3/objects/fees", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of fees", + "operationId": "post-/crm/v3/objects/fees/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/fees/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of fees by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/fees/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of fees by ID", + "operationId": "post-/crm/v3/objects/fees/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/fees/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of fees by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/fees/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of goal targets", + "description": "Create multiple goal targets in a single batch operation.", + "operationId": "post-/crm/v3/objects/goal_targets/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of goal targets by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/goal_targets/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/{goalTargetId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{goalTargetId}`. `{goalTargetId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/goal_targets/{goalTargetId}_getById", + "parameters": [ + { + "name": "goalTargetId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Delete a goal target by ID", + "description": "Delete a goal target by `{goalTargetId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/goal_targets/{goalTargetId}_archive", + "parameters": [ + { + "name": "goalTargetId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{goalTargetId}`or optionally a unique property value as specified by the `idProperty` query param. `{goalTargetId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/goal_targets/{goalTargetId}_update", + "parameters": [ + { + "name": "goalTargetId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Perform a search for goal targets based on various filters and criteria.", + "description": "Search for goal targets using specified criteria.", + "operationId": "post-/crm/v3/objects/goal_targets/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of goal targets by ID", + "description": "Archive multiple goal targets in a single batch operation using their IDs.", + "operationId": "post-/crm/v3/objects/goal_targets/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of goal targets by internal ID, or unique property values", + "description": "Update multiple goal targets in a single batch operation using their internal IDs or unique property values.", + "operationId": "post-/crm/v3/objects/goal_targets/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of goal targets by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/goal_targets/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/goal_targets": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Get a page of goal targets", + "description": "Read a page of goal targets. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/goal_targets_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of goal targets that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a goal target with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard goal targets is provided.", + "operationId": "post-/crm/v3/objects/goal_targets_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of invoices", + "operationId": "post-/crm/v3/objects/invoices/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/invoices/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of invoices by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/invoices/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/{invoiceId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{invoiceId}`. `{invoiceId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/invoices/{invoiceId}_getById", + "parameters": [ + { + "name": "invoiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{invoiceId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/invoices/{invoiceId}_archive", + "parameters": [ + { + "name": "invoiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{invoiceId}`or optionally a unique property value as specified by the `idProperty` query param. `{invoiceId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/invoices/{invoiceId}_update", + "parameters": [ + { + "name": "invoiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of invoices by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/invoices/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of invoices. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/invoices_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of invoices that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a invoice with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard invoices is provided.", + "operationId": "post-/crm/v3/objects/invoices_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of invoices by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/invoices/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/invoices/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of invoices by ID", + "operationId": "post-/crm/v3/objects/invoices/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of leads by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/leads/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/leads/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of leads. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/leads_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of leads that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a lead with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard leads is provided.", + "operationId": "post-/crm/v3/objects/leads_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of leads", + "operationId": "post-/crm/v3/objects/leads/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of leads by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/leads/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads/{leadsId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{leadsId}`. `{leadsId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/leads/{leadsId}_getById", + "parameters": [ + { + "name": "leadsId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{leadsId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/leads/{leadsId}_archive", + "parameters": [ + { + "name": "leadsId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{leadsId}`or optionally a unique property value as specified by the `idProperty` query param. `{leadsId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/leads/{leadsId}_update", + "parameters": [ + { + "name": "leadsId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/leads/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of leads by ID", + "operationId": "post-/crm/v3/objects/leads/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read record association limits between two objects", + "description": "Returns records approaching or at association limits between two objects", + "operationId": "get-/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}", + "parameters": [ + { + "name": "fromObjectTypeId", + "in": "path", + "description": "", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectTypeId", + "in": "path", + "description": "", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "atLimitFromRecordSamples", + "limit", + "nearLimitFromRecordSamples", + "totalRecordsAtLimit", + "totalRecordsNearLimit" + ], + "type": "object", + "properties": { + "totalRecordsAtLimit": { + "type": "integer", + "format": "int32" + }, + "atLimitFromRecordSamples": { + "type": "array", + "items": { + "required": [ + "label", + "objectId" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "objectId": { + "type": "integer", + "format": "int32" + } + } + } + }, + "totalRecordsNearLimit": { + "type": "integer", + "format": "int32" + }, + "limit": { + "type": "integer", + "format": "int64" + }, + "nearLimitFromRecordSamples": { + "type": "array", + "items": { + "required": [ + "label", + "objectId", + "percentage", + "usage" + ], + "type": "object", + "properties": { + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "label": { + "type": "string" + }, + "objectId": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/associations/labels": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read association label limits", + "description": "Returns limits and usage for custom association labels", + "operationId": "get-/crm/v3/limits/associations/labels", + "parameters": [ + { + "name": "fromObjectTypeId", + "in": "query", + "description": "", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectTypeId", + "in": "query", + "description": "", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "allLabels", + "fromObjectType", + "limit", + "percentage", + "toObjectType", + "usage" + ], + "type": "object", + "properties": { + "allLabels": { + "type": "array", + "items": { + "type": "string" + } + }, + "fromObjectType": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + }, + "toObjectType": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/associations/records/{fromObjectTypeId}/to": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read record association limits from an object", + "description": "Returns objects for which the from object has records approaching or at association limits", + "operationId": "get-/crm/v3/limits/associations/records/{fromObjectTypeId}/to", + "parameters": [ + { + "name": "fromObjectTypeId", + "in": "path", + "description": "", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "hasRecordsAtLimit", + "hasRecordsNearLimit", + "objectTypeId", + "pluralLabel", + "singularLabel" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "pluralLabel": { + "type": "string" + }, + "hasRecordsNearLimit": { + "type": "boolean" + }, + "singularLabel": { + "type": "string" + }, + "hasRecordsAtLimit": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/custom-object-types": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read custom object limits", + "description": "Returns limits and usage for custom object schemas", + "operationId": "get-/crm/v3/limits/custom-object-types", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "limit", + "percentage", + "usage" + ], + "type": "object", + "properties": { + "usage": { + "type": "integer", + "format": "int64" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/custom-properties": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read custom property limits", + "description": "Returns limits and usage per object for custom properties", + "operationId": "get-/crm/v3/limits/custom-properties", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int64" + }, + "byObjectType": { + "type": "array", + "items": { + "required": [ + "limit", + "objectTypeId", + "percentage", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + } + }, + "overallLimit": { + "type": "integer", + "format": "int64" + }, + "overallPercentage": { + "type": "number" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/associations/records/from": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read record association limits", + "description": "Returns objects with records approaching or at association limits", + "operationId": "get-/crm/v3/limits/associations/records/from", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "hasRecordsAtLimit", + "hasRecordsNearLimit", + "objectTypeId", + "pluralLabel", + "singularLabel" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "pluralLabel": { + "type": "string" + }, + "hasRecordsNearLimit": { + "type": "boolean" + }, + "singularLabel": { + "type": "string" + }, + "hasRecordsAtLimit": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/records": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read record limits", + "description": "Returns limits and usage per object for records", + "operationId": "get-/crm/v3/limits/records", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "customObjectTypes", + "hubspotDefinedObjectTypes" + ], + "type": "object", + "properties": { + "customObjectTypes": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int32" + }, + "byObjectType": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + } + }, + "overallLimit": { + "type": "integer", + "format": "int32" + }, + "overallPercentage": { + "type": "number" + } + } + }, + "hubspotDefinedObjectTypes": { + "type": "array", + "items": { + "required": [ + "limit", + "objectTypeId", + "percentage", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/pipelines": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read pipeline limits", + "description": "Returns limits and usage per object for pipelines", + "operationId": "get-/crm/v3/limits/pipelines", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "customObjectTypes", + "hubspotDefinedObjectTypes" + ], + "type": "object", + "properties": { + "customObjectTypes": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int32" + }, + "byObjectType": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + } + }, + "overallLimit": { + "type": "integer", + "format": "int32" + }, + "overallPercentage": { + "type": "number" + } + } + }, + "hubspotDefinedObjectTypes": { + "type": "array", + "items": { + "required": [ + "limit", + "objectTypeId", + "percentage", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/limits/calculated-properties": { + "get": { + "tags": [ + "Limits" + ], + "summary": "Read calculation property limits", + "description": "Returns overall limit and per object usage for calculated properties", + "operationId": "get-/crm/v3/limits/calculated-properties", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int64" + }, + "byObjectType": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + } + }, + "overallLimit": { + "type": "integer", + "format": "int64" + }, + "overallPercentage": { + "type": "number" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of line items. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/line_items_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of line items that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a line item with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard line items is provided.", + "operationId": "post-/crm/v3/objects/line_items_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/{lineItemId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{lineItemId}`. `{lineItemId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/line_items/{lineItemId}_getById", + "parameters": [ + { + "name": "lineItemId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{lineItemId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/line_items/{lineItemId}_archive", + "parameters": [ + { + "name": "lineItemId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{lineItemId}`or optionally a unique property value as specified by the `idProperty` query param. `{lineItemId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/line_items/{lineItemId}_update", + "parameters": [ + { + "name": "lineItemId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of line items by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/line_items/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of line items", + "operationId": "post-/crm/v3/objects/line_items/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of line items by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/line_items/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/line_items/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of line items by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/line_items/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/line_items/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of line items by ID", + "operationId": "post-/crm/v3/objects/line_items/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of listings. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-420", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of listings that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a listing with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard listings is provided.", + "operationId": "post-/crm/v3/objects/0-420", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of listings by ID", + "description": "Archive multiple listings by their IDs.", + "operationId": "post-/crm/v3/objects/0-420/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of listings by internal ID, or unique property values", + "description": "Update multiple listings using their internal IDs or unique property values.", + "operationId": "post-/crm/v3/objects/0-420/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of listings by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/0-420/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of listings", + "description": "Create multiple listings in a single request.", + "operationId": "post-/crm/v3/objects/0-420/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of listings by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/0-420/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for listings using various criteria and filters.", + "description": "Execute a search query to find listings based on specified filters and properties.", + "operationId": "post-/crm/v3/objects/0-420/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-420/{listingId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{listingId}`. `{listingId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-420/{listingId}", + "parameters": [ + { + "name": "listingId", + "in": "path", + "description": "The unique identifier of the listing to be retrieved.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{listingId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/0-420/{listingId}", + "parameters": [ + { + "name": "listingId", + "in": "path", + "description": "The unique identifier of the listing to be archived.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{listingId}`or optionally a unique property value as specified by the `idProperty` query param. `{listingId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/0-420/{listingId}", + "parameters": [ + { + "name": "listingId", + "in": "path", + "description": "The unique identifier of the listing to be updated.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.listings.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/update-list-name": { + "put": { + "tags": [ + "Lists" + ], + "summary": "Update List Name", + "description": "Update the name of a list. The name must be globally unique relative to all other public lists in the portal.", + "operationId": "put-/crm/v3/lists/{listId}/update-list-name_updateName", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the list to update.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "listName", + "in": "query", + "description": "The name to update the list to.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "includeFilters", + "in": "query", + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Successful response, for a request with `includeFilters` set to `false`.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "updatedList": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "membershipSettings": { + "type": "object", + "properties": { + "membershipTeamId": { + "type": "integer", + "format": "int32" + }, + "includeUnassigned": { + "type": "boolean" + } + } + }, + "processingType": { + "type": "string", + "description": "The processing type of the list." + }, + "objectTypeId": { + "type": "string", + "description": "The object type of the list." + }, + "updatedById": { + "type": "string", + "description": "The ID of the user that last updated the list." + }, + "filtersUpdatedAt": { + "type": "string", + "description": "The time when the filters for this list were last updated.", + "format": "date-time" + }, + "listId": { + "type": "string", + "description": "The **ILS ID** of the list." + }, + "createdAt": { + "type": "string", + "description": "The time when the list was created.", + "format": "date-time" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the list." + }, + "deletedAt": { + "type": "string", + "description": "The time when the list was deleted.", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "description": "The version of the list.", + "format": "int32" + }, + "size": { + "type": "integer", + "description": "Size of the list", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the list." + }, + "listPermissions": { + "required": [ + "teamsWithEditAccess", + "usersWithEditAccess" + ], + "type": "object", + "properties": { + "teamsWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "usersWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "createdById": { + "type": "string", + "description": "The ID of the user that created the list." + }, + "filterBranch": { + "oneOf": [ + { + "title": "OR", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "OR", + "enum": [ + "OR" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + }, + "updatedAt": { + "type": "string", + "description": "The time the list was last updated.", + "format": "date-time" + } + }, + "description": "An object list definition." + } + }, + "description": "The updated definition of the list in response to a list update request." + }, + "example": { + "updatedList": { + "createdAt": "2023-11-15T18:16:52.165Z", + "createdById": "123", + "filtersUpdatedAt": "2023-11-15T19:03:24.160Z", + "listId": "123", + "listVersion": 2, + "name": "Updated List Name", + "objectTypeId": "0-1", + "processingStatus": "COMPLETE", + "processingType": "DYNAMIC", + "updatedAt": "2023-11-15T19:03:32.979Z", + "updatedById": "123" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/memberships/add-and-remove": { + "put": { + "tags": [ + "Memberships" + ], + "summary": "Add and/or Remove Records from a List", + "description": "Add and/or remove records that have already been created in the system to and/or from a list.\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.", + "operationId": "put-/crm/v3/lists/{listId}/memberships/add-and-remove_addAndRemove", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The IDs of the records to add and/or remove from the list.", + "content": { + "application/json": { + "schema": { + "required": [ + "recordIdsToAdd", + "recordIdsToRemove" + ], + "type": "object", + "properties": { + "recordIdsToRemove": { + "type": "array", + "items": { + "type": "string" + } + }, + "recordIdsToAdd": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "The IDs of the records to add and/or remove from a list.", + "example": { + "recordIdsToAdd": [ + "123", + "456", + "789" + ], + "recordIdsToRemove": [ + "654" + ] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "required": [ + "recordIdsMissing", + "recordIdsRemoved", + "recordsIdsAdded" + ], + "type": "object", + "properties": { + "recordIdsRemoved": { + "type": "array", + "description": "The IDs of the records that were `removed` from the list.", + "items": { + "type": "string" + } + }, + "recordsIdsAdded": { + "type": "array", + "items": { + "type": "string" + } + }, + "recordIdsMissing": { + "type": "array", + "description": "The IDs of the records that were `missing` (e.g. did not exist in the portal) and so were not `added` or `removed`.", + "items": { + "type": "string" + } + } + }, + "description": "The IDs of the records that were `added`, `removed`, and/or found to be `missing` as a result of the \nmembership update request." + }, + "example": { + "recordIdsAdded": [ + "123", + "456" + ], + "recordIdsMissing": [ + "789" + ], + "recordIdsRemoved": [ + "654" + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}": { + "get": { + "tags": [ + "Lists" + ], + "summary": "Fetch List by ID", + "description": "Fetch a single list by **ILS list ID**.", + "operationId": "get-/crm/v3/lists/{listId}_getById", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the list to fetch.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "includeFilters", + "in": "query", + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Successful response, for a request with `includeFilters` set to `true`.", + "content": { + "application/json": { + "schema": { + "required": [ + "list" + ], + "type": "object", + "properties": { + "list": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "membershipSettings": { + "type": "object", + "properties": { + "membershipTeamId": { + "type": "integer", + "format": "int32" + }, + "includeUnassigned": { + "type": "boolean" + } + } + }, + "processingType": { + "type": "string", + "description": "The processing type of the list." + }, + "objectTypeId": { + "type": "string", + "description": "The object type of the list." + }, + "updatedById": { + "type": "string", + "description": "The ID of the user that last updated the list." + }, + "filtersUpdatedAt": { + "type": "string", + "description": "The time when the filters for this list were last updated.", + "format": "date-time" + }, + "listId": { + "type": "string", + "description": "The **ILS ID** of the list." + }, + "createdAt": { + "type": "string", + "description": "The time when the list was created.", + "format": "date-time" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the list." + }, + "deletedAt": { + "type": "string", + "description": "The time when the list was deleted.", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "description": "The version of the list.", + "format": "int32" + }, + "size": { + "type": "integer", + "description": "Size of the list", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the list." + }, + "listPermissions": { + "required": [ + "teamsWithEditAccess", + "usersWithEditAccess" + ], + "type": "object", + "properties": { + "teamsWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "usersWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "createdById": { + "type": "string", + "description": "The ID of the user that created the list." + }, + "filterBranch": { + "oneOf": [ + { + "title": "OR", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "OR", + "enum": [ + "OR" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + }, + "updatedAt": { + "type": "string", + "description": "The time the list was last updated.", + "format": "date-time" + } + }, + "description": "An object list definition." + } + }, + "description": "The response for a list fetch request." + }, + "example": { + "list": { + "createdAt": "2023-11-15T18:15:00.812Z", + "createdById": "123", + "filterBranch": { + "filterBranchOperator": "OR", + "filterBranchType": "OR", + "filterBranches": [ + { + "filterBranchOperator": "AND", + "filterBranchType": "AND", + "filters": [ + { + "filterType": "PROPERTY", + "operation": { + "includeObjectsWithNoValueSet": false, + "operationType": "ENUMERATION", + "operator": "IS_ANY_OF", + "values": [ + "inactive", + "active" + ] + }, + "property": "hs_content_membership_status" + }, + { + "filterType": "IN_LIST", + "listId": 2, + "operator": "IN_LIST" + } + ] + } + ] + }, + "filtersUpdatedAt": "2023-11-15T18:15:00.812Z", + "listId": "1", + "listVersion": 1, + "name": "Snapshot List Example", + "objectTypeId": "0-1", + "processingStatus": "COMPLETE", + "processingType": "SNAPSHOT", + "size": 330, + "updatedAt": "2023-11-15T18:15:20.210Z", + "updatedById": "123" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Lists" + ], + "summary": "Delete a List", + "description": "Delete a list by **ILS list ID**. Lists deleted through this endpoint can be restored up to 90-days following the delete. After 90-days, the list is purged and can no longer be restored.", + "operationId": "delete-/crm/v3/lists/{listId}_remove", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the list to delete.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/schedule-conversion": { + "get": { + "tags": [ + "Lists" + ], + "summary": "Retrieve the conversion details for a list", + "description": "Retrieve the conversion details for a list. This can be used to check for an upcoming conversion, or to get the details of when a list was already converted.", + "operationId": "get-/crm/v3/lists/{listId}/schedule-conversion", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The ID of the list to schedule the conversion for.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "listId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "requestedConversionTime": { + "oneOf": [ + { + "title": "CONVERSION_DATE", + "required": [ + "conversionType", + "day", + "month", + "year" + ], + "type": "object", + "properties": { + "month": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "CONVERSION_DATE", + "enum": [ + "CONVERSION_DATE" + ] + }, + "day": { + "type": "integer", + "format": "int32" + } + } + }, + { + "title": "INACTIVITY", + "required": [ + "conversionType", + "offset", + "timeUnit" + ], + "type": "object", + "properties": { + "offset": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "INACTIVITY", + "enum": [ + "INACTIVITY" + ] + }, + "timeUnit": { + "type": "string", + "enum": [ + "DAY", + "WEEK", + "MONTH" + ] + } + } + } + ] + }, + "convertedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Lists" + ], + "summary": "Schedule or update the conversion of a list to static", + "description": "Schedule the conversion of an active list into a static list, or update the already scheduled conversion. This can be scheduled for a specific date or based on activity.", + "operationId": "put-/crm/v3/lists/{listId}/schedule-conversion", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The ID of the list to schedule the conversion for.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "oneOf": [ + { + "title": "CONVERSION_DATE", + "required": [ + "conversionType", + "day", + "month", + "year" + ], + "type": "object", + "properties": { + "month": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "CONVERSION_DATE", + "enum": [ + "CONVERSION_DATE" + ] + }, + "day": { + "type": "integer", + "format": "int32" + } + } + }, + { + "title": "INACTIVITY", + "required": [ + "conversionType", + "offset", + "timeUnit" + ], + "type": "object", + "properties": { + "offset": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "INACTIVITY", + "enum": [ + "INACTIVITY" + ] + }, + "timeUnit": { + "type": "string", + "enum": [ + "DAY", + "WEEK", + "MONTH" + ] + } + } + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "listId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "requestedConversionTime": { + "oneOf": [ + { + "title": "CONVERSION_DATE", + "required": [ + "conversionType", + "day", + "month", + "year" + ], + "type": "object", + "properties": { + "month": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "CONVERSION_DATE", + "enum": [ + "CONVERSION_DATE" + ] + }, + "day": { + "type": "integer", + "format": "int32" + } + } + }, + { + "title": "INACTIVITY", + "required": [ + "conversionType", + "offset", + "timeUnit" + ], + "type": "object", + "properties": { + "offset": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "INACTIVITY", + "enum": [ + "INACTIVITY" + ] + }, + "timeUnit": { + "type": "string", + "enum": [ + "DAY", + "WEEK", + "MONTH" + ] + } + } + } + ] + }, + "convertedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 7, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Lists" + ], + "summary": "Cancel the conversion of a list", + "description": "Delete an existing scheduled conversion for a list.", + "operationId": "delete-/crm/v3/lists/{listId}/schedule-conversion", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The ID of the list that you want to cancel the conversion for.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/search": { + "post": { + "tags": [ + "Lists" + ], + "summary": "Search Lists", + "description": "Search lists by list name or page through all lists by providing an empty `query` value.", + "operationId": "post-/crm/v3/lists/search_doSearch", + "parameters": [], + "requestBody": { + "description": "The IDs of the records to add and/or remove from the list.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "listIds": { + "type": "array", + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.", + "items": { + "type": "string" + } + }, + "offset": { + "type": "integer", + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.", + "format": "int32" + }, + "query": { + "type": "string", + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists." + }, + "count": { + "type": "integer", + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.", + "format": "int32" + }, + "processingTypes": { + "type": "array", + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "array", + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.", + "items": { + "type": "string" + } + }, + "sort": { + "type": "string" + } + }, + "description": "The request object used for searching through lists.", + "example": { + "additionalProperties": [ + "hs_list_size_week_delta" + ], + "count": 100, + "offset": 0, + "query": "Test" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "required": [ + "hasMore", + "lists", + "offset", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of lists that match the search criteria.", + "format": "int32" + }, + "offset": { + "type": "integer", + "description": "Value to be passed in a future request to paginate through list search results.", + "format": "int32" + }, + "lists": { + "type": "array", + "description": "The lists that matched the search criteria.", + "items": { + "required": [ + "additionalProperties", + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "processingType": { + "type": "string", + "description": "The processing type of the list." + }, + "objectTypeId": { + "type": "string", + "description": "The object type of the list." + }, + "updatedById": { + "type": "string", + "description": "The ID of the user that last updated the list." + }, + "filtersUpdatedAt": { + "type": "string", + "description": "The time when the filters for this list were last updated.", + "format": "date-time" + }, + "listId": { + "type": "string", + "description": "The **ILS ID** of the list." + }, + "createdAt": { + "type": "string", + "description": "The time when the list was created.", + "format": "date-time" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the list." + }, + "deletedAt": { + "type": "string", + "description": "The time when the list was deleted.", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "description": "The version of the list.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "The name of the list." + }, + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The name and value of any additional properties that exist for this list and that were included in the search request." + }, + "createdById": { + "type": "string", + "description": "The ID of the user that created the list." + }, + "updatedAt": { + "type": "string", + "description": "The time the list was last updated.", + "format": "date-time" + } + }, + "example": { + "additionalProperties": { + "hs_last_record_added_at": 1695938616824, + "hs_list_reference_count": 0, + "hs_list_size": 59, + "hs_list_size_week_delta": -1 + }, + "createdAt": "2023-09-28T22:03:17.998Z", + "createdById": "1", + "filtersUpdatedAt": "2023-09-28T22:03:17.998Z", + "listId": "123", + "listVersion": 1, + "name": "Test list", + "objectTypeId": "0-1", + "processingStatus": "COMPLETED", + "processingType": "SNAPSHOT", + "updatedById": "1" + } + } + }, + "hasMore": { + "type": "boolean", + "description": "Whether or not there are more results to page through." + } + }, + "description": "The response object with the list search hits and additional information regarding pagination.", + "example": { + "hasMore": false, + "lists": [ + { + "additionalProperties": { + "hs_last_record_added_at": "1695938616824", + "hs_list_reference_count": "0", + "hs_list_size": "59", + "hs_list_size_week_delta": "-10" + }, + "createdAt": "2023-09-28T22:03:17.998Z", + "createdById": "1", + "filtersUpdatedAt": "2023-09-28T22:03:17.998Z", + "listId": "123", + "listVersion": 1, + "name": "Test list", + "objectTypeId": "0-1", + "processingStatus": "COMPLETE", + "processingType": "SNAPSHOT", + "updatedAt": "2023-09-28T22:03:37.005Z", + "updatedById": "1" + } + ], + "offset": 1, + "total": 1 + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 7, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/folders/move-list": { + "put": { + "tags": [ + "Folders" + ], + "summary": "Moves a list to a given folder", + "description": "Given a list and a folder, the list will be moved to that folder.", + "operationId": "put-/crm/v3/lists/folders/move-list_moveList", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "listId", + "newFolderId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string", + "description": "The Id of the list to move." + }, + "newFolderId": { + "type": "string", + "description": "The Id of folder to move the list to, the root folder is Id 0." + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/memberships/add": { + "put": { + "tags": [ + "Memberships" + ], + "summary": "Add Records to a List", + "description": "Add the records provided to the list. Records that do not exist or that are already members of the list are ignored.\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.", + "operationId": "put-/crm/v3/lists/{listId}/memberships/add_add", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The IDs of the records to add to the list.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "required": [ + "recordIdsMissing", + "recordIdsRemoved", + "recordsIdsAdded" + ], + "type": "object", + "properties": { + "recordIdsRemoved": { + "type": "array", + "description": "The IDs of the records that were `removed` from the list.", + "items": { + "type": "string" + } + }, + "recordsIdsAdded": { + "type": "array", + "items": { + "type": "string" + } + }, + "recordIdsMissing": { + "type": "array", + "description": "The IDs of the records that were `missing` (e.g. did not exist in the portal) and so were not `added` or `removed`.", + "items": { + "type": "string" + } + } + }, + "description": "The IDs of the records that were `added`, `removed`, and/or found to be `missing` as a result of the \nmembership update request." + }, + "example": { + "recordIdsAdded": [ + "123", + "456" + ], + "recordIdsMissing": [ + "789" + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}": { + "get": { + "tags": [ + "Lists" + ], + "summary": "Fetch List by Name", + "description": "Fetch a single list by list name and object type.", + "operationId": "get-/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}_getByName", + "parameters": [ + { + "name": "listName", + "in": "path", + "description": "The name of the list to fetch. This is **not** case sensitive.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "objectTypeId", + "in": "path", + "description": "The object type ID of the object types stored by the list to fetch. For example, `0-1` for a `CONTACT` list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "includeFilters", + "in": "query", + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Successful response, for a request with `includeFilters` set to `false`.", + "content": { + "application/json": { + "schema": { + "required": [ + "list" + ], + "type": "object", + "properties": { + "list": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "membershipSettings": { + "type": "object", + "properties": { + "membershipTeamId": { + "type": "integer", + "format": "int32" + }, + "includeUnassigned": { + "type": "boolean" + } + } + }, + "processingType": { + "type": "string", + "description": "The processing type of the list." + }, + "objectTypeId": { + "type": "string", + "description": "The object type of the list." + }, + "updatedById": { + "type": "string", + "description": "The ID of the user that last updated the list." + }, + "filtersUpdatedAt": { + "type": "string", + "description": "The time when the filters for this list were last updated.", + "format": "date-time" + }, + "listId": { + "type": "string", + "description": "The **ILS ID** of the list." + }, + "createdAt": { + "type": "string", + "description": "The time when the list was created.", + "format": "date-time" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the list." + }, + "deletedAt": { + "type": "string", + "description": "The time when the list was deleted.", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "description": "The version of the list.", + "format": "int32" + }, + "size": { + "type": "integer", + "description": "Size of the list", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the list." + }, + "listPermissions": { + "required": [ + "teamsWithEditAccess", + "usersWithEditAccess" + ], + "type": "object", + "properties": { + "teamsWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "usersWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "createdById": { + "type": "string", + "description": "The ID of the user that created the list." + }, + "filterBranch": { + "oneOf": [ + { + "title": "OR", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "OR", + "enum": [ + "OR" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch", + "has_circular_reference": true + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch", + "has_circular_reference": true + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + } + ] + } + } + } + }, + { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + } + ] + }, + "updatedAt": { + "type": "string", + "description": "The time the list was last updated.", + "format": "date-time" + } + }, + "description": "An object list definition." + } + }, + "description": "The response for a list fetch request." + }, + "example": { + "list": { + "createdAt": "2023-11-15T18:10:11.793Z", + "createdById": "123", + "filtersUpdatedAt": "2023-11-15T18:10:11.793Z", + "listId": "1", + "listVersion": 1, + "name": "Manual List Example", + "objectTypeId": "0-1", + "processingStatus": "COMPLETE", + "processingType": "MANUAL", + "size": 330, + "updatedAt": "2023-11-15T18:10:11.923Z", + "updatedById": "123" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}": { + "put": { + "tags": [ + "Folders" + ], + "summary": "Moves a folder", + "description": "This moves the folder from its current location to a new location. It updates the parent of this folder to the new Id given.", + "operationId": "put-/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}_move", + "parameters": [ + { + "name": "folderId", + "in": "path", + "description": "The ID of the folder to move", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "newParentFolderId", + "in": "path", + "description": "The ID for the target parent folder.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "folder" + ], + "type": "object", + "properties": { + "folder": { + "required": [ + "childLists", + "childNodes", + "id", + "parentFolderId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The time the folder was created at.", + "format": "date-time" + }, + "parentFolderId": { + "type": "string", + "description": "The Id of the folder this folder is in, the root folder is represented as 0." + }, + "childNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicListFolder", + "has_circular_reference": true + } + }, + "name": { + "type": "string", + "description": "The name of the folder." + }, + "id": { + "type": "string", + "description": "The Id of the folder." + }, + "childLists": { + "type": "array", + "description": "An array of list Id's contained in this folder.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "updatedContentsAt": { + "type": "string", + "description": "The time that the contents of the folder was last updated at.", + "format": "date-time" + }, + "userId": { + "type": "integer", + "description": "The user Id of the owner of the folder.", + "format": "int32" + }, + "updatedAt": { + "type": "string", + "description": "The time the folder was last updated at.", + "format": "date-time" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/idmapping": { + "get": { + "tags": [ + "Mapping" + ], + "summary": "Translate Legacy List Id to Modern List Id", + "description": "This API allows translation of legacy list id to list id. This is a temporary API allowed for mapping old id's to new id's and will expire on May 30th, 2025.", + "operationId": "get-/crm/v3/lists/idmapping_translateLegacyListIdToListId", + "parameters": [ + { + "name": "legacyListId", + "in": "query", + "description": "The legacy list id from lists v1 API.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "legacyListId", + "listId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string", + "description": "The V3 list id for the list" + }, + "legacyListId": { + "type": "string", + "description": "The legacy list id for the list" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Mapping" + ], + "summary": "Translate Legacy List Id to Modern List Id in Batch", + "description": "This API allows translation of a batch of legacy list id's to list id's. This allows for a maximum of 10,000 id's. This is a temporary API allowed for mapping old id's to new id's and will expire on May 30th, 2025.", + "operationId": "post-/crm/v3/lists/idmapping_translateLegacyListIdToListIdBatch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "legacyListIdsToIdsMapping", + "missingLegacyListIds" + ], + "type": "object", + "properties": { + "legacyListIdsToIdsMapping": { + "type": "array", + "items": { + "required": [ + "legacyListId", + "listId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string", + "description": "The V3 list id for the list" + }, + "legacyListId": { + "type": "string", + "description": "The legacy list id for the list" + } + } + } + }, + "missingLegacyListIds": { + "type": "array", + "description": "A list of legacy list ids that were passed in but not found. It will be empty if no id's are missing", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/restore": { + "put": { + "tags": [ + "Lists" + ], + "summary": "Restore a List", + "description": "Restore a previously deleted list by **ILS list ID**. Deleted lists are eligible to be restored up-to 90-days after the list has been deleted.", + "operationId": "put-/crm/v3/lists/{listId}/restore_restore", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the list to restore.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/folders/{folderId}/rename": { + "put": { + "tags": [ + "Folders" + ], + "summary": "Rename a folder", + "description": "Renames the given folderId with a new name.", + "operationId": "put-/crm/v3/lists/folders/{folderId}/rename_rename", + "parameters": [ + { + "name": "folderId", + "in": "path", + "description": "The ID of the folder to rename", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "newFolderName", + "in": "query", + "description": "The new name of the folder.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "folder" + ], + "type": "object", + "properties": { + "folder": { + "required": [ + "childLists", + "childNodes", + "id", + "parentFolderId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The time the folder was created at.", + "format": "date-time" + }, + "parentFolderId": { + "type": "string", + "description": "The Id of the folder this folder is in, the root folder is represented as 0." + }, + "childNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicListFolder", + "has_circular_reference": true + } + }, + "name": { + "type": "string", + "description": "The name of the folder." + }, + "id": { + "type": "string", + "description": "The Id of the folder." + }, + "childLists": { + "type": "array", + "description": "An array of list Id's contained in this folder.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "updatedContentsAt": { + "type": "string", + "description": "The time that the contents of the folder was last updated at.", + "format": "date-time" + }, + "userId": { + "type": "integer", + "description": "The user Id of the owner of the folder.", + "format": "int32" + }, + "updatedAt": { + "type": "string", + "description": "The time the folder was last updated at.", + "format": "date-time" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/memberships/join-order": { + "get": { + "tags": [ + "Memberships" + ], + "summary": "Fetch List Memberships Ordered by Added to List Date", + "description": "Fetch the memberships of a list in order sorted by the time the records were added to the list.\n\nThe `recordId`s are sorted in *ascending* order if an `after` offset or no offset is provided. If only a `before` offset is provided, then the records are sorted in *descending* order.\n\nThe `after` offset parameter will take precedence over the `before` offset in a case where both are provided.", + "operationId": "get-/crm/v3/lists/{listId}/memberships/join-order_getPageOrderedByAddedToListDate", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "before", + "in": "query", + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The number of records to return in the response. The maximum `limit` is 250.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "membershipTimestamp", + "recordId" + ], + "type": "object", + "properties": { + "recordId": { + "type": "string" + }, + "membershipTimestamp": { + "type": "string", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}": { + "put": { + "tags": [ + "Memberships" + ], + "summary": "Add All Records from a Source List to a Destination List", + "description": "Add all of the records from a *source list* (specified by the `sourceListId`) to a *destination list* (specified by the `listId`). Records that are already members of the *destination list* will be ignored. The *destination* and *source list* IDs must be different. The *destination* and *source lists* must contain records of the same type (e.g. contacts, companies, etc.).\n\nThis endpoint only works for *destination lists* that have a `processingType` of `MANUAL` or `SNAPSHOT`. The *source list* can have any `processingType`.\n\nThis endpoint only supports a `sourceListId` for lists with less than 100,000 memberships.", + "operationId": "put-/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}_addAllFromList", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` *destination list*, which the *source list* records are added to.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "sourceListId", + "in": "path", + "description": "The **ILS ID** of the *source list* to grab the records from, which are then added to the *destination list*.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Operation successful", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships": { + "get": { + "tags": [ + "Memberships" + ], + "summary": "Get lists record is member of", + "description": "For given record provide lists this record is member of.", + "operationId": "get-/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships_getLists", + "parameters": [ + { + "name": "objectTypeId", + "in": "path", + "description": "Object type id of the record", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "recordId", + "in": "path", + "description": "Id of the record", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "results": { + "type": "array", + "items": { + "required": [ + "firstAddedTimestamp", + "lastAddedTimestamp", + "listId", + "listVersion" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "listVersion": { + "type": "integer", + "format": "int32" + }, + "lastAddedTimestamp": { + "type": "string", + "format": "date-time" + }, + "isPublicList": { + "type": "boolean" + }, + "firstAddedTimestamp": { + "type": "string", + "format": "date-time" + } + }, + "description": "Lists record is member of", + "example": { + "firstAddedTimestamp": "2023-06-28T22:00:15.001Z", + "lastAddedTimestamp": "2023-09-28T22:03:17.998Z", + "listId": 13, + "listVersion": 2 + } + } + } + } + }, + "example": { + "results": [ + { + "firstAddedTimestamp": "2023-11-02T21:05:42.843Z", + "lastAddedTimestamp": "2024-02-02T17:44:57.879Z", + "listId": "23", + "listVersion": 6 + }, + { + "firstAddedTimestamp": "2023-11-07T10:26:31.161Z", + "lastAddedTimestamp": "2023-11-07T10:26:31.161Z", + "listId": "21", + "listVersion": 3 + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/folders/{folderId}": { + "delete": { + "tags": [ + "Folders" + ], + "summary": "Deletes a folder", + "description": "Deletes the folder with the given Id.", + "operationId": "delete-/crm/v3/lists/folders/{folderId}_remove", + "parameters": [ + { + "name": "folderId", + "in": "path", + "description": "The ID of the folder to delete", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/folders": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Retrieves a folder.", + "description": "Retrieves a folder and recursively includes all folders via the childNodes attribute. The child lists field will be empty in all child nodes. Only the folder retrieved will include the child lists in that folder.", + "operationId": "get-/crm/v3/lists/folders_getAll", + "parameters": [ + { + "name": "folderId", + "in": "query", + "description": "The Id of the folder to retrieve.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string", + "default": "0" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "folder" + ], + "type": "object", + "properties": { + "folder": { + "required": [ + "childLists", + "childNodes", + "id", + "parentFolderId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The time the folder was created at.", + "format": "date-time" + }, + "parentFolderId": { + "type": "string", + "description": "The Id of the folder this folder is in, the root folder is represented as 0." + }, + "childNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicListFolder", + "has_circular_reference": true + } + }, + "name": { + "type": "string", + "description": "The name of the folder." + }, + "id": { + "type": "string", + "description": "The Id of the folder." + }, + "childLists": { + "type": "array", + "description": "An array of list Id's contained in this folder.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "updatedContentsAt": { + "type": "string", + "description": "The time that the contents of the folder was last updated at.", + "format": "date-time" + }, + "userId": { + "type": "integer", + "description": "The user Id of the owner of the folder.", + "format": "int32" + }, + "updatedAt": { + "type": "string", + "description": "The time the folder was last updated at.", + "format": "date-time" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Folders" + ], + "summary": "Creates a folder", + "description": "Creates a folder with the given information.", + "operationId": "post-/crm/v3/lists/folders_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "parentFolderId": { + "type": "string", + "description": "The folder this should be created in, if not specified will be created in the root folder 0." + }, + "name": { + "type": "string", + "description": "The name of the folder to be created." + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "folder" + ], + "type": "object", + "properties": { + "folder": { + "required": [ + "childLists", + "childNodes", + "id", + "parentFolderId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The time the folder was created at.", + "format": "date-time" + }, + "parentFolderId": { + "type": "string", + "description": "The Id of the folder this folder is in, the root folder is represented as 0." + }, + "childNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicListFolder", + "has_circular_reference": true + } + }, + "name": { + "type": "string", + "description": "The name of the folder." + }, + "id": { + "type": "string", + "description": "The Id of the folder." + }, + "childLists": { + "type": "array", + "description": "An array of list Id's contained in this folder.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "updatedContentsAt": { + "type": "string", + "description": "The time that the contents of the folder was last updated at.", + "format": "date-time" + }, + "userId": { + "type": "integer", + "description": "The user Id of the owner of the folder.", + "format": "int32" + }, + "updatedAt": { + "type": "string", + "description": "The time the folder was last updated at.", + "format": "date-time" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/memberships/remove": { + "put": { + "tags": [ + "Memberships" + ], + "summary": "Remove Records from a List", + "description": "Remove the records provided from the list. Records that do not exist or that are not members of the list are ignored.\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.", + "operationId": "put-/crm/v3/lists/{listId}/memberships/remove_remove", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The IDs of the records to remove from the list.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "required": [ + "recordIdsMissing", + "recordIdsRemoved", + "recordsIdsAdded" + ], + "type": "object", + "properties": { + "recordIdsRemoved": { + "type": "array", + "description": "The IDs of the records that were `removed` from the list.", + "items": { + "type": "string" + } + }, + "recordsIdsAdded": { + "type": "array", + "items": { + "type": "string" + } + }, + "recordIdsMissing": { + "type": "array", + "description": "The IDs of the records that were `missing` (e.g. did not exist in the portal) and so were not `added` or `removed`.", + "items": { + "type": "string" + } + } + }, + "description": "The IDs of the records that were `added`, `removed`, and/or found to be `missing` as a result of the \nmembership update request." + }, + "example": { + "recordIdsMissing": [ + "789" + ], + "recordIdsRemoved": [ + "123", + "456" + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/lists/{listId}/memberships": { + "get": { + "tags": [ + "Memberships" + ], + "summary": "Fetch List Memberships Ordered by ID", + "description": "Fetch the memberships of a list in order sorted by the `recordId` of the records in the list.\n\nThe `recordId`s are sorted in *ascending* order if an `after` offset or no offset is provided. If only a `before` offset is provided, then the records are sorted in *descending* order.\n\nThe `after` offset parameter will take precedence over the `before` offset in a case where both are provided.", + "operationId": "get-/crm/v3/lists/{listId}/memberships_getPage", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "before", + "in": "query", + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The number of records to return in the response. The maximum `limit` is 250.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "membershipTimestamp", + "recordId" + ], + "type": "object", + "properties": { + "recordId": { + "type": "string" + }, + "membershipTimestamp": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "example": { + "paging": { + "next": { + "after": "AAAAAAAAAS0%3D", + "link": "https://private.hubapi.com/crm/v3/lists/123/memberships?portalId=865747473&limit=2&after=AAAAAAAAAS0%3D" + }, + "prev": { + "before": "AAAAAAAAAMk%3D", + "link": "https://private.hubapi.com/crm/v3/lists/123/memberships?before=AAAAAAAAAMk%3D&portalId=865747473&limit=2" + } + }, + "results": [ + { + "membershipTimestamp": "2023-11-07T16:46:04.122Z", + "recordId": "202" + }, + { + "membershipTimestamp": "2023-11-07T16:46:04.122Z", + "recordId": "232" + }, + { + "membershipTimestamp": "2023-11-07T16:46:04.122Z", + "recordId": "239" + } + ], + "total": 330 + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read" + ] + }, + { + "oauth2": [ + "crm.lists.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Memberships" + ], + "summary": "Delete All Records from a List", + "description": "Remove **all** of the records from a list. ***Note:*** *The list is not deleted.*\n\nThis endpoint only works for lists that have a `processingType` of `MANUAL` or `SNAPSHOT`.\n\nThis endpoint only supports lists that have less than 100,000 memberships.", + "operationId": "delete-/crm/v3/lists/{listId}/memberships_removeAll", + "parameters": [ + { + "name": "listId", + "in": "path", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Operation successful", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + }, + { + "private_apps": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "crm.lists.write" + ] + }, + { + "oauth2": [ + "crm.lists.read", + "cms.membership.access_groups.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/{meetingId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{meetingId}`. `{meetingId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/meetings/{meetingId}_getById", + "parameters": [ + { + "name": "meetingId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{meetingId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/meetings/{meetingId}_archive", + "parameters": [ + { + "name": "meetingId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{meetingId}`or optionally a unique property value as specified by the `idProperty` query param. `{meetingId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/meetings/{meetingId}_update", + "parameters": [ + { + "name": "meetingId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of meetings by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/meetings/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of meetings by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/meetings/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of meetings by ID", + "operationId": "post-/crm/v3/objects/meetings/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of meetings. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/meetings_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of meetings that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a meeting with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard meetings is provided.", + "operationId": "post-/crm/v3/objects/meetings_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of meetings by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/meetings/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of meetings", + "operationId": "post-/crm/v3/objects/meetings/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/meetings/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/meetings/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/notes/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of notes. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/notes_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of notes that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a note with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard notes is provided.", + "operationId": "post-/crm/v3/objects/notes_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of notes by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/notes/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of notes by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/notes/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of notes by ID", + "operationId": "post-/crm/v3/objects/notes/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of notes by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/notes/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of notes", + "operationId": "post-/crm/v3/objects/notes/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/notes/{noteId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{noteId}`. `{noteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/notes/{noteId}_getById", + "parameters": [ + { + "name": "noteId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{noteId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/notes/{noteId}_archive", + "parameters": [ + { + "name": "noteId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{noteId}`or optionally a unique property value as specified by the `idProperty` query param. `{noteId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/notes/{noteId}_update", + "parameters": [ + { + "name": "noteId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/object-library/enablement": { + "get": { + "tags": [ + "Enablement" + ], + "operationId": "get-/crm/v3/object-library/enablement", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "enablementByObjectTypeId" + ], + "type": "object", + "properties": { + "enablementByObjectTypeId": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/object-library/enablement/{objectTypeId}": { + "get": { + "tags": [ + "Enablement" + ], + "operationId": "get-/crm/v3/object-library/enablement/{objectTypeId}", + "parameters": [ + { + "name": "objectTypeId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "enablement" + ], + "type": "object", + "properties": { + "enablement": { + "type": "boolean" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.read" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/orders/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of orders by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/orders/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/{orderId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{orderId}`. `{orderId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/orders/{orderId}", + "parameters": [ + { + "name": "orderId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{orderId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/orders/{orderId}", + "parameters": [ + { + "name": "orderId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{orderId}`or optionally a unique property value as specified by the `idProperty` query param. `{orderId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/orders/{orderId}", + "parameters": [ + { + "name": "orderId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of orders by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/orders/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of orders", + "operationId": "post-/crm/v3/objects/orders/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of orders by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/orders/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of orders. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/orders", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of orders that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a order with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard orders is provided.", + "operationId": "post-/crm/v3/objects/orders", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/orders/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of orders by ID", + "operationId": "post-/crm/v3/objects/orders/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "operationId": "post-/crm/v3/objects/partner_clients/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients": { + "get": { + "tags": [ + "Basic" + ], + "operationId": "get-/crm/v3/objects/partner_clients", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "operationId": "post-/crm/v3/objects/partner_clients/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/partner_clients/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients/{partnerClientId}": { + "get": { + "tags": [ + "Basic" + ], + "operationId": "get-/crm/v3/objects/partner_clients/{partnerClientId}", + "parameters": [ + { + "name": "partnerClientId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "operationId": "patch-/crm/v3/objects/partner_clients/{partnerClientId}", + "parameters": [ + { + "name": "partnerClientId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}": { + "put": { + "tags": [ + "Associations" + ], + "summary": "Associate a partner client with another object", + "operationId": "put-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "parameters": [ + { + "name": "partnerClientId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Associations" + ], + "summary": "Remove an association between two partner clients", + "operationId": "delete-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "parameters": [ + { + "name": "partnerClientId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}": { + "get": { + "tags": [ + "Associations" + ], + "summary": "List associations of a partner client by type", + "operationId": "get-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}", + "parameters": [ + { + "name": "partnerClientId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + }, + { + "name": "includeFA", + "in": "query", + "description": "", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-clients.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-clients.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services/{partnerServiceId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{partnerServiceId}`. `{partnerServiceId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/partner_services/{partnerServiceId}", + "parameters": [ + { + "name": "partnerServiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{partnerServiceId}`or optionally a unique property value as specified by the `idProperty` query param. `{partnerServiceId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/partner_services/{partnerServiceId}", + "parameters": [ + { + "name": "partnerServiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of partner services by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/partner_services/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/partner_services/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of partner services. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/partner_services", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of partner services that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}": { + "put": { + "tags": [ + "Associations" + ], + "summary": "Associate a partner service with another object", + "operationId": "put-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "parameters": [ + { + "name": "partnerServiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Associations" + ], + "summary": "Remove an association between two partner services", + "operationId": "delete-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "parameters": [ + { + "name": "partnerServiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of partner services by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/partner_services/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}": { + "get": { + "tags": [ + "Associations" + ], + "summary": "List associations of a partner service by type", + "operationId": "get-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}", + "parameters": [ + { + "name": "partnerServiceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "toObjectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + }, + { + "name": "includeFA", + "in": "query", + "description": "", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.partner-services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.partner-services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/payments/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of payments by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/payments/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/payments/{paymentsId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{paymentsId}`. `{paymentsId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/payments/{paymentsId}", + "parameters": [ + { + "name": "paymentsId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object type", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "properties": { + "createdate": "2019-10-30T03:30:17.883Z", + "hs_initial_amount": "50.00", + "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z", + "hs_latest_status": "succeeded" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/payments": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of payments. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/payments", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/payments/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/payments/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ], + "type": "object", + "properties": { + "query": { + "type": "string" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "after": { + "type": "string" + }, + "sorts": { + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit": { + "get": { + "tags": [ + "Pipeline Stage Audits" + ], + "description": "Return a reverse chronological list of all mutations that have occurred on the pipeline stage identified by `{stageId}`.", + "operationId": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit_getAudit", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "stageId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "action", + "identifier", + "portalId" + ], + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "A unique string identifier for the audit event." + }, + "rawObject": { + "type": "object", + "properties": {}, + "description": "An object containing the raw data associated with the audit event." + }, + "fromUserId": { + "type": "integer", + "description": "The ID of the user who initiated the audit event.", + "format": "int32" + }, + "portalId": { + "type": "integer", + "description": "The unique identifier for the HubSpot portal where the audit event occurred.", + "format": "int32" + }, + "action": { + "type": "string", + "description": "The action performed that triggered the audit event." + }, + "message": { + "type": "string", + "description": "A descriptive message related to the audit event." + }, + "timestamp": { + "type": "string", + "description": "The date and time when the audit event took place.", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/pipelines/{objectType}/{pipelineId}": { + "get": { + "tags": [ + "Pipelines" + ], + "summary": "Return a pipeline by ID", + "description": "Return a single pipeline object identified by its unique `{pipelineId}`.", + "operationId": "get-/crm/v3/pipelines/{objectType}/{pipelineId}_getById", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "stages", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline was created. The default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints.", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline definition.", + "example": { + "label": "My ticket pipeline", + "displayOrder": 0, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "812723471", + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + }, + { + "label": "Done", + "displayOrder": 0, + "metadata": { + "ticketState": "CLOSED" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234914" + } + ] + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Pipelines" + ], + "summary": "Replace a pipeline", + "operationId": "put-/crm/v3/pipelines/{objectType}/{pipelineId}_replace", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "validateReferencesBeforeDelete", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "displayOrder", + "label", + "stages" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "Pipeline stage inputs used to create the new or replacement pipeline.", + "items": { + "required": [ + "displayOrder", + "label" + ], + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to create or replace a pipeline stage's definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "description": "An input used to create or replace a pipeline's definition.", + "example": { + "label": "My replaced pipeline", + "displayOrder": 0, + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + } + }, + { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "stages", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline was created. The default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints.", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline definition.", + "example": { + "label": "My ticket pipeline", + "displayOrder": 0, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "812723471", + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + }, + { + "label": "Done", + "displayOrder": 0, + "metadata": { + "ticketState": "CLOSED" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234914" + } + ] + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Pipelines" + ], + "summary": "Delete a pipeline", + "operationId": "delete-/crm/v3/pipelines/{objectType}/{pipelineId}_archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "validateReferencesBeforeDelete", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Pipelines" + ], + "description": "Perform a partial update of the pipeline identified by `{pipelineId}`. The updated pipeline will be returned in the response.", + "operationId": "patch-/crm/v3/pipelines/{objectType}/{pipelineId}_update", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "validateReferencesBeforeDelete", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "description": "An input used to update some properties on a pipeline definition.", + "example": { + "label": "My updated pipeline", + "displayOrder": 0 + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "stages", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline was created. The default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints.", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline definition.", + "example": { + "label": "My ticket pipeline", + "displayOrder": 0, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "812723471", + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + }, + { + "label": "Done", + "displayOrder": 0, + "metadata": { + "ticketState": "CLOSED" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234914" + } + ] + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/pipelines/{objectType}/{pipelineId}/stages": { + "get": { + "tags": [ + "Pipeline Stages" + ], + "summary": "Return all stages of a pipeline", + "description": "Return all the stages associated with the pipeline identified by `{pipelineId}`.", + "operationId": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_getAll", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Pipeline Stages" + ], + "summary": "Create a pipeline stage", + "operationId": "post-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_create", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "displayOrder", + "label" + ], + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to create or replace a pipeline stage's definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/pipelines/{objectType}/{pipelineId}/audit": { + "get": { + "tags": [ + "Pipeline Audits" + ], + "summary": "Return an audit of all changes to the pipeline", + "description": "Return a reverse chronological list of all mutations that have occurred on the pipeline identified by `{pipelineId}`.", + "operationId": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/audit_getAudit", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "action", + "identifier", + "portalId" + ], + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "A unique string identifier for the audit event." + }, + "rawObject": { + "type": "object", + "properties": {}, + "description": "An object containing the raw data associated with the audit event." + }, + "fromUserId": { + "type": "integer", + "description": "The ID of the user who initiated the audit event.", + "format": "int32" + }, + "portalId": { + "type": "integer", + "description": "The unique identifier for the HubSpot portal where the audit event occurred.", + "format": "int32" + }, + "action": { + "type": "string", + "description": "The action performed that triggered the audit event." + }, + "message": { + "type": "string", + "description": "A descriptive message related to the audit event." + }, + "timestamp": { + "type": "string", + "description": "The date and time when the audit event took place.", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/pipelines/{objectType}": { + "get": { + "tags": [ + "Pipelines" + ], + "summary": "Retrieve all pipelines", + "description": "Return all pipelines for the object type specified by `{objectType}`.", + "operationId": "get-/crm/v3/pipelines/{objectType}_getAll", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "stages", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline was created. The default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints.", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline definition.", + "example": { + "label": "My ticket pipeline", + "displayOrder": 0, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "812723471", + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + }, + { + "label": "Done", + "displayOrder": 0, + "metadata": { + "ticketState": "CLOSED" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234914" + } + ] + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Pipelines" + ], + "summary": "Create a pipeline", + "description": "Create a new pipeline with the provided property values. The entire pipeline object, including its unique ID, will be returned in the response.", + "operationId": "post-/crm/v3/pipelines/{objectType}_create", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "displayOrder", + "label", + "stages" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "Pipeline stage inputs used to create the new or replacement pipeline.", + "items": { + "required": [ + "displayOrder", + "label" + ], + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to create or replace a pipeline stage's definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "description": "An input used to create or replace a pipeline's definition.", + "example": { + "label": "My replaced pipeline", + "displayOrder": 0, + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + } + }, + { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "stages", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline was created. The default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints.", + "items": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline definition.", + "example": { + "label": "My ticket pipeline", + "displayOrder": 0, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "812723471", + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + }, + { + "label": "Done", + "displayOrder": 0, + "metadata": { + "ticketState": "CLOSED" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234914" + } + ] + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}": { + "get": { + "tags": [ + "Pipeline Stages" + ], + "summary": "Return a pipeline stage by ID", + "operationId": "get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_getById", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "stageId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Pipeline Stages" + ], + "summary": "Replace a pipeline stage", + "description": "Replace all the properties of an existing pipeline stage with the values provided. The updated stage will be returned in the response.", + "operationId": "put-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_replace", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "stageId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "displayOrder", + "label" + ], + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to create or replace a pipeline stage's definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Pipeline Stages" + ], + "summary": "Delete a pipeline stage", + "operationId": "delete-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "stageId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Pipeline Stages" + ], + "operationId": "patch-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_update", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "pipelineId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "stageId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to update some properties on a pipeline definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "", + "description": "Retrieve multiple postal mail objects using their internal IDs or unique property values.", + "operationId": "post-/crm/v3/objects/postal_mail/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Batch archive", + "description": "Archive a batch of postal mail objects using their IDs.", + "operationId": "post-/crm/v3/objects/postal_mail/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail": { + "get": { + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "operationId": "get-/crm/v3/objects/postal_mail_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a postal mail object with the given properties and return a copy of the object, including the ID. ", + "operationId": "post-/crm/v3/objects/postal_mail_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Batch create", + "description": "Create a batch of postal mail objects.", + "operationId": "post-/crm/v3/objects/postal_mail/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Batch upsert", + "description": "Create or update postal mails identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/postal_mail/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/{postalMailId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "operationId": "get-/crm/v3/objects/postal_mail/{postalMailId}_getById", + "parameters": [ + { + "name": "postalMailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move the postal mail object with the ID `{postalMailId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/postal_mail/{postalMailId}_archive", + "parameters": [ + { + "name": "postalMailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "", + "description": "", + "operationId": "patch-/crm/v3/objects/postal_mail/{postalMailId}_update", + "parameters": [ + { + "name": "postalMailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier used to trace the creation or update request of the CRM object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "", + "description": "Update multiple postal mail objects in a single request.", + "operationId": "post-/crm/v3/objects/postal_mail/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/postal_mail/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search", + "description": "Search for postal mail objects using specific criteria in the request.", + "operationId": "post-/crm/v3/objects/postal_mail/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of products by ID", + "operationId": "post-/crm/v3/objects/products/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of products. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/products_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of products that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a product with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard products is provided.", + "operationId": "post-/crm/v3/objects/products_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/products/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of products by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/products/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of products", + "operationId": "post-/crm/v3/objects/products/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of products by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/products/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/{productId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{productId}`. `{productId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/products/{productId}_getById", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.read" + ] + }, + { + "private_apps": [ + "crm.objects.products.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{productId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/products/{productId}_archive", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{productId}`or optionally a unique property value as specified by the `idProperty` query param. `{productId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/products/{productId}_update", + "parameters": [ + { + "name": "productId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/products/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of products by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/products/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of properties", + "description": "Archive a provided list of properties. This method will return a 204 No Content response on success regardless of the initial state of the property (e.g. active, already archived, non-existent).", + "operationId": "post-/crm/v3/properties/{objectType}/batch/archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the property to read or modify." + } + }, + "example": { + "name": "my_custom_property" + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}/groups/{groupName}": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Read a property group", + "description": "Read a property group identified by {groupName}.", + "operationId": "get-/crm/v3/properties/{objectType}/groups/{groupName}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "groupName", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "displayOrder", + "label", + "name" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "description": "An ID for a group of properties", + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Groups" + ], + "summary": "Archive a property group", + "description": "Move a property group identified by {groupName} to the recycling bin.", + "operationId": "delete-/crm/v3/properties/{objectType}/groups/{groupName}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "groupName", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Groups" + ], + "summary": "Update a property group", + "description": "Perform a partial update of a property group identified by {groupName}. Provided fields will be overwritten.", + "operationId": "patch-/crm/v3/properties/{objectType}/groups/{groupName}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "groupName", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "example": { + "displayOrder": -1, + "label": "My Property Group" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "displayOrder", + "label", + "name" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "description": "An ID for a group of properties", + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}/{propertyName}": { + "get": { + "tags": [ + "Core" + ], + "summary": "Read a property", + "description": "Read a property identified by {propertyName}.", + "operationId": "get-/crm/v3/properties/{objectType}/{propertyName}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "propertyName", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Core" + ], + "summary": "Archive a property", + "description": "Move a property identified by {propertyName} to the recycling bin.", + "operationId": "delete-/crm/v3/properties/{objectType}/{propertyName}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "propertyName", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Core" + ], + "summary": "Update a property", + "description": "Perform a partial update of a property identified by { propertyName }. Provided fields will be overwritten.", + "operationId": "patch-/crm/v3/properties/{objectType}/{propertyName}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "propertyName", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "hidden": { + "type": "boolean", + "description": "If true, the property won't be visible and can't be used in HubSpot." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + } + }, + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hidden": false, + "label": "My Contact Property", + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 14, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of properties", + "description": "Read a provided list of properties.", + "operationId": "post-/crm/v3/properties/{objectType}/batch/read", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "archived", + "inputs" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the property to read or modify." + } + }, + "example": { + "name": "my_custom_property" + } + } + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of properties", + "description": "Create a batch of properties using the same rules as when creating an individual property.", + "operationId": "post-/crm/v3/properties/{objectType}/batch/create", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "fieldType", + "groupName", + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "externalOptions": { + "type": "boolean", + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 19, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}": { + "get": { + "tags": [ + "Core" + ], + "summary": "Read all properties", + "description": "Read all existing properties for the specified object type and HubSpot account.", + "operationId": "get-/crm/v3/properties/{objectType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Core" + ], + "summary": "Create a property", + "description": "Create and return a copy of a new property for the specified object type.", + "operationId": "post-/crm/v3/properties/{objectType}", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "fieldType", + "groupName", + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "externalOptions": { + "type": "boolean", + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 19, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/properties/{objectType}/groups": { + "get": { + "tags": [ + "Groups" + ], + "summary": "Read all property groups", + "description": "Read all existing property groups for the specified object type and HubSpot account.", + "operationId": "get-/crm/v3/properties/{objectType}/groups", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "displayOrder", + "label", + "name" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "description": "An ID for a group of properties", + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + } + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Groups" + ], + "summary": "Create a property group", + "description": "Create and return a copy of a new property group.", + "operationId": "post-/crm/v3/properties/{objectType}/groups", + "parameters": [ + { + "name": "objectType", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "label", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "displayOrder", + "label", + "name" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "description": "An ID for a group of properties", + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.invoices.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.write" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.write" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.write" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.write" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.write" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.write" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.write" + ] + }, + { + "private_apps": [ + "crm.schemas.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.carts.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/property-validations/{objectTypeId}": { + "get": { + "tags": [ + "Public_Property_Validations" + ], + "summary": "Read all property validation rules for an object", + "description": "Read all properties with validation rules for a given object.", + "operationId": "get-/crm/v3/property-validations/{objectTypeId}", + "parameters": [ + { + "name": "objectTypeId", + "in": "path", + "description": "", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "propertyName", + "propertyValidationRules" + ], + "type": "object", + "properties": { + "propertyName": { + "type": "string" + }, + "propertyValidationRules": { + "type": "array", + "items": { + "required": [ + "ruleArguments", + "ruleType" + ], + "type": "object", + "properties": { + "ruleType": { + "type": "string" + }, + "ruleArguments": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/property-validations/{objectTypeId}/{propertyName}": { + "get": { + "tags": [ + "Public_Property_Validations" + ], + "summary": "Read validation rules for a property", + "description": "Read a property's validation rules identified by {propertyName}.", + "operationId": "get-/crm/v3/property-validations/{objectTypeId}/{propertyName}", + "parameters": [ + { + "name": "objectTypeId", + "in": "path", + "description": "", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "propertyName", + "in": "path", + "description": "", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "ruleArguments", + "ruleType" + ], + "type": "object", + "properties": { + "ruleType": { + "type": "string" + }, + "ruleArguments": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.listings.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "oauth2": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.listings.read" + ] + }, + { + "private_apps": [ + "crm.schemas.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "oauth2": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.commercepayments.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "e-commerce" + ] + }, + { + "oauth2": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.courses.read" + ] + }, + { + "oauth2": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.leads.write" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.goals.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.write" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "oauth2": [ + "media_bridge.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "media_bridge.read" + ] + }, + { + "oauth2": [ + "crm.schemas.commercepayments.read" + ] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.invoices.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.write" + ] + }, + { + "oauth2": [ + "crm.objects.carts.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + }, + { + "oauth2": [ + "crm.objects.listings.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.orders.read" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.read" + ] + }, + { + "private_apps": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.owners.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "automation" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.quotes.read" + ] + }, + { + "private_apps": [ + "crm.schemas.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.carts.read" + ] + }, + { + "oauth2": [ + "crm.schemas.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.schemas.subscriptions.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.schemas.line_items.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "oauth2": [ + "crm.objects.subscriptions.write" + ] + }, + { + "private_apps": [ + "crm.objects.subscriptions.write" + ] + }, + { + "oauth2": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.feedback_submissions.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.products.write" + ] + }, + { + "oauth2": [ + "crm.objects.invoices.read" + ] + }, + { + "oauth2": [ + "e-commerce" + ] + }, + { + "private_apps": [ + "crm.objects.appointments.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.objects.invoices.read" + ] + }, + { + "private_apps": [ + "crm.schemas.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "private_apps": [ + "crm.schemas.appointments.read" + ] + }, + { + "oauth2": [ + "crm.schemas.orders.read" + ] + }, + { + "private_apps": [ + "crm.schemas.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "oauth2": [ + "crm.objects.leads.read" + ] + }, + { + "oauth2": [ + "crm.objects.leads.write" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.goals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.objects.goals.read" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps": [ + "crm.objects.leads.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps": [ + "crm.objects.listings.read" + ] + }, + { + "oauth2": [ + "crm.objects.courses.read" + ] + }, + { + "private_apps": [ + "crm.objects.courses.read" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "oauth2": [ + "crm.pipelines.orders.read" + ] + }, + { + "oauth2": [ + "crm.schemas.invoices.read" + ] + }, + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of quotes by ID", + "operationId": "post-/crm/v3/objects/quotes/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of quotes. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/quotes_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of quotes that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a quote with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard quotes is provided.", + "operationId": "post-/crm/v3/objects/quotes_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/{quoteId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/quotes/{quoteId}_getById", + "parameters": [ + { + "name": "quoteId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{quoteId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/quotes/{quoteId}_archive", + "parameters": [ + { + "name": "quoteId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{quoteId}`or optionally a unique property value as specified by the `idProperty` query param. `{quoteId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/quotes/{quoteId}_update", + "parameters": [ + { + "name": "quoteId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of quotes by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/quotes/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of quotes by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/quotes/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of quotes", + "operationId": "post-/crm/v3/objects/quotes/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.write" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/quotes/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/quotes/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of quotes by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/quotes/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.quotes.read" + ] + }, + { + "private_apps": [ + "crm.objects.quotes.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm-object-schemas/v3/schemas": { + "get": { + "tags": [ + "Core" + ], + "operationId": "get-/crm-object-schemas/v3/schemas_getAll", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "associations", + "id", + "labels", + "name", + "properties", + "requiredProperties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "description": "Associations defined for a given object type.", + "items": { + "required": [ + "fromObjectTypeId", + "id", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "When the association was defined.", + "format": "date-time" + }, + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from.", + "example": "" + }, + "name": { + "type": "string", + "description": "A unique name for this association.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for this association.", + "example": "" + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to.", + "example": "" + }, + "updatedAt": { + "type": "string", + "description": "When the association was last updated.", + "format": "date-time" + } + }, + "description": "Defines an association between two object types.", + "example": { + "id": "105", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + } + }, + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "createdByUserId": { + "type": "integer", + "format": "int32" + }, + "objectTypeId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "updatedByUserId": { + "type": "integer", + "format": "int32" + }, + "fullyQualifiedName": { + "type": "string", + "description": "An assigned unique ID for the object, including portal ID and object name." + }, + "labels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + }, + "archived": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "description": "When the object schema was created.", + "format": "date-time" + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for the schema's object type." + }, + "id": { + "type": "string", + "description": "A unique ID for this schema's object type. Will be defined as {meta-type}-{unique ID}." + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + }, + "updatedAt": { + "type": "string", + "description": "When the object schema was last updated.", + "format": "date-time" + } + }, + "description": "Defines an object schema, including its properties and associations.", + "example": { + "id": "123456", + "createdAt": "2020-02-20T18:07:11.390Z", + "updatedAt": "2020-02-20T18:09:07.555Z", + "properties": [ + { + "updatedAt": "2020-02-20T18:07:11.802Z", + "createdAt": "2020-02-20T18:07:11.802Z", + "name": "my_object_property", + "label": "My object property", + "type": "string", + "fieldType": "text", + "groupName": "my_object_information", + "displayOrder": -1, + "calculated": false, + "externalOptions": false, + "archived": false, + "hasUniqueValue": false + } + ], + "associations": [ + { + "id": "123", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + ], + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ], + "primaryDisplayProperty": "my_object_property", + "metaType": "PORTAL_SPECIFIC", + "fullyQualifiedName": "p7878787_my_object\"", + "name": "my_object" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Core" + ], + "operationId": "post-/crm-object-schemas/v3/schemas_create", + "parameters": [], + "requestBody": { + "description": "Object schema definition, including properties and associations.", + "content": { + "application/json": { + "schema": { + "required": [ + "associatedObjects", + "labels", + "name", + "properties", + "requiredProperties" + ], + "type": "object", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for this object. For internal use only." + }, + "description": { + "type": "string" + }, + "associatedObjects": { + "type": "array", + "description": "Associations defined for this object type.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "required": [ + "fieldType", + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean" + }, + "optionSortStrategy": { + "type": "string", + "description": "Controls how the property options will be sorted in the HubSpot UI.", + "enum": [ + "DISPLAY_ORDER", + "ALPHABETICAL" + ] + }, + "displayOrder": { + "type": "integer", + "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether the property will display the currency symbol in the HubSpot UI." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "string", + "number", + "date", + "datetime", + "enumeration", + "bool" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether the property can be used in a HubSpot form." + }, + "groupName": { + "type": "string", + "description": "The name of the group this property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal." + }, + "textDisplayHint": { + "type": "string", + "description": "Controls how text properties are formatted in the HubSpot UI", + "enum": [ + "unformatted_single_line", + "multi_line", + "email", + "phone_number", + "domain_name", + "ip_address", + "physical_address", + "postal_code" + ] + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property from the API." + }, + "options": { + "type": "array", + "description": "A list of available options for the property. This field is only required for enumerated properties.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "searchableInGlobalSearch": { + "type": "boolean", + "description": "Allow users to search for information entered to this field (limited to 3 properties)" + }, + "numberDisplayHint": { + "type": "string", + "description": "Controls how numeric properties are formatted in the HubSpot UI", + "enum": [ + "unformatted", + "formatted", + "currency", + "percentage", + "duration", + "probability" + ] + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + } + }, + "description": "Defines a property to create.", + "example": { + "label": "My object property", + "type": "enumeration", + "fieldType": "select", + "groupName": "my_object_information", + "displayOrder": 2, + "hasUniqueValue": false, + "options": [ + { + "label": "Option A", + "description": "Choice number one", + "value": "A", + "displayOrder": 1 + }, + { + "label": "Option B", + "description": "Choice number two", + "value": "B", + "displayOrder": 2 + } + ] + } + } + }, + "labels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + } + }, + "description": "Defines a new object type, its properties, and associations.", + "example": { + "name": "my_object", + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "primaryDisplayProperty": "my_object_property", + "requiredProperties": [ + "my_object_property" + ], + "properties": [ + { + "name": "my_object_property", + "label": "My object property", + "isPrimaryDisplayLabel": true + } + ], + "associatedObjects": [ + "CONTACT" + ], + "metaType": "PORTAL_SPECIFIC" + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "associations", + "id", + "labels", + "name", + "properties", + "requiredProperties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "description": "Associations defined for a given object type.", + "items": { + "required": [ + "fromObjectTypeId", + "id", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "When the association was defined.", + "format": "date-time" + }, + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from.", + "example": "" + }, + "name": { + "type": "string", + "description": "A unique name for this association.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for this association.", + "example": "" + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to.", + "example": "" + }, + "updatedAt": { + "type": "string", + "description": "When the association was last updated.", + "format": "date-time" + } + }, + "description": "Defines an association between two object types.", + "example": { + "id": "105", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + } + }, + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "createdByUserId": { + "type": "integer", + "format": "int32" + }, + "objectTypeId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "updatedByUserId": { + "type": "integer", + "format": "int32" + }, + "fullyQualifiedName": { + "type": "string", + "description": "An assigned unique ID for the object, including portal ID and object name." + }, + "labels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + }, + "archived": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "description": "When the object schema was created.", + "format": "date-time" + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for the schema's object type." + }, + "id": { + "type": "string", + "description": "A unique ID for this schema's object type. Will be defined as {meta-type}-{unique ID}." + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + }, + "updatedAt": { + "type": "string", + "description": "When the object schema was last updated.", + "format": "date-time" + } + }, + "description": "Defines an object schema, including its properties and associations.", + "example": { + "id": "123456", + "createdAt": "2020-02-20T18:07:11.390Z", + "updatedAt": "2020-02-20T18:09:07.555Z", + "properties": [ + { + "updatedAt": "2020-02-20T18:07:11.802Z", + "createdAt": "2020-02-20T18:07:11.802Z", + "name": "my_object_property", + "label": "My object property", + "type": "string", + "fieldType": "text", + "groupName": "my_object_information", + "displayOrder": -1, + "calculated": false, + "externalOptions": false, + "archived": false, + "hasUniqueValue": false + } + ], + "associations": [ + { + "id": "123", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + ], + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ], + "primaryDisplayProperty": "my_object_property", + "metaType": "PORTAL_SPECIFIC", + "fullyQualifiedName": "p7878787_my_object\"", + "name": "my_object" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 30, + "x-moar-complexity-skipped": false + } + }, + "/crm-object-schemas/v3/schemas/{objectType}": { + "get": { + "tags": [ + "Core" + ], + "operationId": "get-/crm-object-schemas/v3/schemas/{objectType}_getById", + "parameters": [ + { + "name": "objectType", + "in": "path", + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "associations", + "id", + "labels", + "name", + "properties", + "requiredProperties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "description": "Associations defined for a given object type.", + "items": { + "required": [ + "fromObjectTypeId", + "id", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "When the association was defined.", + "format": "date-time" + }, + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from.", + "example": "" + }, + "name": { + "type": "string", + "description": "A unique name for this association.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for this association.", + "example": "" + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to.", + "example": "" + }, + "updatedAt": { + "type": "string", + "description": "When the association was last updated.", + "format": "date-time" + } + }, + "description": "Defines an association between two object types.", + "example": { + "id": "105", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + } + }, + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "createdByUserId": { + "type": "integer", + "format": "int32" + }, + "objectTypeId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "updatedByUserId": { + "type": "integer", + "format": "int32" + }, + "fullyQualifiedName": { + "type": "string", + "description": "An assigned unique ID for the object, including portal ID and object name." + }, + "labels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + }, + "archived": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "description": "When the object schema was created.", + "format": "date-time" + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for the schema's object type." + }, + "id": { + "type": "string", + "description": "A unique ID for this schema's object type. Will be defined as {meta-type}-{unique ID}." + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + } + }, + "updatedAt": { + "type": "string", + "description": "When the object schema was last updated.", + "format": "date-time" + } + }, + "description": "Defines an object schema, including its properties and associations.", + "example": { + "id": "123456", + "createdAt": "2020-02-20T18:07:11.390Z", + "updatedAt": "2020-02-20T18:09:07.555Z", + "properties": [ + { + "updatedAt": "2020-02-20T18:07:11.802Z", + "createdAt": "2020-02-20T18:07:11.802Z", + "name": "my_object_property", + "label": "My object property", + "type": "string", + "fieldType": "text", + "groupName": "my_object_information", + "displayOrder": -1, + "calculated": false, + "externalOptions": false, + "archived": false, + "hasUniqueValue": false + } + ], + "associations": [ + { + "id": "123", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + ], + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ], + "primaryDisplayProperty": "my_object_property", + "metaType": "PORTAL_SPECIFIC", + "fullyQualifiedName": "p7878787_my_object\"", + "name": "my_object" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.read" + ] + }, + { + "oauth2": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "crm.schemas.custom.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.custom.highly_sensitive.read.v2" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Core" + ], + "operationId": "delete-/crm-object-schemas/v3/schemas/{objectType}_archive", + "parameters": [ + { + "name": "objectType", + "in": "path", + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Core" + ], + "operationId": "patch-/crm-object-schemas/v3/schemas/{objectType}_update", + "parameters": [ + { + "name": "objectType", + "in": "path", + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attributes to update in your schema.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "clearDescription": { + "type": "boolean" + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "description": { + "type": "string" + }, + "restorable": { + "type": "boolean" + }, + "labels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + } + }, + "description": "Defines attributes to update on an object type.", + "example": { + "primaryDisplayProperty": "my_object_property", + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "labels", + "name", + "requiredProperties" + ], + "type": "object", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "objectTypeId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fullyQualifiedName": { + "type": "string" + }, + "labels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + }, + "archived": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "description": "When the object type was created.", + "format": "date-time" + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "portalId": { + "type": "integer", + "description": "The ID of the account that this object type is specific to.", + "format": "int32" + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for this object. For internal use only." + }, + "id": { + "type": "string", + "description": "A unique ID for this object type. Will be defined as {meta-type}-{unique ID}." + }, + "updatedAt": { + "type": "string", + "description": "When the object type was last updated.", + "format": "date-time" + } + }, + "description": "Defines an object type.", + "example": { + "id": "123456", + "createdAt": "2020-02-20T18:07:11.390Z", + "updatedAt": "2020-02-21T14:13:28.818002Z", + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ], + "primaryDisplayProperty": "my_object_property", + "portalId": 12345678, + "metaType": "PORTAL_SPECIFIC", + "name": "my_object" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 9, + "x-moar-complexity-skipped": false + } + }, + "/crm-object-schemas/v3/schemas/{objectType}/associations": { + "post": { + "tags": [ + "Core" + ], + "operationId": "post-/crm-object-schemas/v3/schemas/{objectType}/associations_createAssociation", + "parameters": [ + { + "name": "objectType", + "in": "path", + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attributes that define the association.", + "content": { + "application/json": { + "schema": { + "required": [ + "fromObjectTypeId", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from." + }, + "name": { + "type": "string", + "description": "A unique name for this association." + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to." + } + }, + "description": "Defines an association between two object types.", + "example": { + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "contact", + "name": "my_object_to_contact" + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "fromObjectTypeId", + "id", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "When the association was defined.", + "format": "date-time" + }, + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from.", + "example": "" + }, + "name": { + "type": "string", + "description": "A unique name for this association.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for this association.", + "example": "" + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to.", + "example": "" + }, + "updatedAt": { + "type": "string", + "description": "When the association was last updated.", + "format": "date-time" + } + }, + "description": "Defines an association between two object types.", + "example": { + "id": "105", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}": { + "delete": { + "tags": [ + "Core" + ], + "operationId": "delete-/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}_archiveAssociation", + "parameters": [ + { + "name": "objectType", + "in": "path", + "description": "Fully qualified name or object type ID of your schema.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "associationIdentifier", + "in": "path", + "description": "Unique ID of the association to remove.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.schemas.custom.write" + ] + }, + { + "oauth2": [ + "crm.schemas.custom.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of services by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/0-162/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of services by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/0-162/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of services by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/0-162/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/0-162/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of services by ID", + "operationId": "post-/crm/v3/objects/0-162/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/{serviceId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{serviceId}`. `{serviceId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-162/{serviceId}", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{serviceId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/0-162/{serviceId}", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{serviceId}`or optionally a unique property value as specified by the `idProperty` query param. `{serviceId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/0-162/{serviceId}", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of services. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/0-162", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of services that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a service with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard services is provided.", + "operationId": "post-/crm/v3/objects/0-162", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/0-162/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of services", + "operationId": "post-/crm/v3/objects/0-162/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.services.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.services.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of tasks by ID", + "operationId": "post-/crm/v3/objects/tasks/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/{taskId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{taskId}`. `{taskId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/tasks/{taskId}_getById", + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{taskId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/tasks/{taskId}_archive", + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{taskId}`or optionally a unique property value as specified by the `idProperty` query param. `{taskId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/tasks/{taskId}_update", + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of tasks", + "operationId": "post-/crm/v3/objects/tasks/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of tasks by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/tasks/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of tasks by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/tasks/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of tasks by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/tasks/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/tasks/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tasks": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of tasks. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/tasks_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tasks that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a task with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard tasks is provided.", + "operationId": "post-/crm/v3/objects/tasks_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of taxes. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/taxes_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of taxes that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a tax with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard taxes is provided.", + "operationId": "post-/crm/v3/objects/taxes_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/{taxId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{taxId}`. `{taxId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/taxes/{taxId}_getById", + "parameters": [ + { + "name": "taxId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{taxId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/taxes/{taxId}_archive", + "parameters": [ + { + "name": "taxId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{taxId}`or optionally a unique property value as specified by the `idProperty` query param. `{taxId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/taxes/{taxId}_update", + "parameters": [ + { + "name": "taxId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of taxes by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/taxes/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of taxes by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/taxes/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of taxes by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/taxes/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of taxes", + "operationId": "post-/crm/v3/objects/taxes/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/taxes/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/taxes/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of taxes by ID", + "operationId": "post-/crm/v3/objects/taxes/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.line_items.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.line_items.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/merge": { + "post": { + "tags": [ + "Basic" + ], + "summary": "Merge two tickets", + "description": "Merge two tickets, combining them into one ticket record.", + "operationId": "post-/crm/v3/objects/tickets/merge_merge", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string" + }, + "primaryObjectId": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of tickets by ID", + "description": "Delete a batch of tickets by ID. Deleted tickets can be restored within 90 days of deletion. Learn more about [restoring records](https://knowledge.hubspot.com/records/restore-deleted-records).", + "operationId": "post-/crm/v3/objects/tickets/batch/archive_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/{ticketId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{ticketId}`. `{ticketId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/tickets/{ticketId}_getById", + "parameters": [ + { + "name": "ticketId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{ticketId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/tickets/{ticketId}_archive", + "parameters": [ + { + "name": "ticketId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{ticketId}`or optionally a unique property value as specified by the `idProperty` query param. `{ticketId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/tickets/{ticketId}_update", + "parameters": [ + { + "name": "ticketId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of tickets by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/tickets/batch/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of tickets by internal ID, or unique property values", + "description": "Retrieve a batch of tickets by ID (`ticketId`) or unique property value (`idProperty`). ", + "operationId": "post-/crm/v3/objects/tickets/batch/read_read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of tickets. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/tickets_getPage", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tickets that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a ticket with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard tickets is provided.", + "operationId": "post-/crm/v3/objects/tickets_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/search": { + "post": { + "tags": [ + "Search" + ], + "summary": "Search for tickets", + "description": "Search for tickets by filtering on properties, searching through associations, and sorting results. Learn more about [CRM search](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request).", + "operationId": "post-/crm/v3/objects/tickets/search_doSearch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of tickets", + "description": "Create a batch of tickets. The `inputs` array can contain a `properties` object to define property values for the ticket, along with an `associations` array to define [associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4) with other CRM records.", + "operationId": "post-/crm/v3/objects/tickets/batch/create_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/tickets/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of tickets by internal ID, or unique property values", + "description": "Update a batch of tickets by ID (`ticketId`) or unique property value (`idProperty`). Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "post-/crm/v3/objects/tickets/batch/update_update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "tickets" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail": { + "get": { + "tags": [ + "Events" + ], + "summary": "Get event details", + "description": "Retrieve details for a specific event, specified by template ID and event ID.", + "operationId": "get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail_getDetailById", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "eventId", + "in": "path", + "description": "The event ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "details" + ], + "type": "object", + "properties": { + "details": { + "type": "string", + "description": "The details Markdown rendered as HTML." + } + }, + "description": "The details Markdown rendered as HTML.", + "example": { + "details": "

Registration occurred at Jan 30, 2020, 1:13:25 PM

Questions

Who's a good kitty?: Purr...

Will you stop playing with that?: Meow!

EDIT

" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/events": { + "post": { + "tags": [ + "Events" + ], + "summary": "Send event data (single)", + "description": "Send a single instance of event data to a specified event type.", + "operationId": "post-/integrators/timeline/v3/events_create", + "parameters": [], + "requestBody": { + "description": "The timeline event definition.", + "content": { + "application/json": { + "schema": { + "required": [ + "eventTemplateId", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + } + }, + "description": "The state of the timeline event.", + "example": { + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "tokens": { + "petName": "Art3mis", + "petAge": 3, + "petColor": "black" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "eventTemplateId", + "id", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This should be unique to the app and event template. If you use the same ID for different CRM objects, the last to be processed will win and the first will not have a record. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + }, + "objectType": { + "type": "string", + "description": "The ObjectType associated with the EventTemplate." + } + }, + "description": "The current state of the timeline event.", + "example": { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-004-invalid", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:37:15.569Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + }, + "example": { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-004", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T17:42:10.276Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 12, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}": { + "put": { + "tags": [ + "Tokens" + ], + "summary": "Update a template token", + "description": "Update an event type template token, specified by token name.", + "operationId": "put-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}_update", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokenName", + "in": "path", + "description": "The token name.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "The updated token definition.", + "content": { + "application/json": { + "schema": { + "required": [ + "label" + ], + "type": "object", + "properties": { + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + } + }, + "description": "State of the token definition for update requests.", + "example": { + "label": "petType edit", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + }, + { + "value": "bird", + "label": "Bird" + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + }, + "example": { + "name": "petType", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Type", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + }, + { + "value": "bird", + "label": "Bird" + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Tokens" + ], + "summary": "Delete a template token", + "description": "Delete an existing token from a specific event type template.", + "operationId": "delete-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens/{tokenName}_archive", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokenName", + "in": "path", + "description": "The token name.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/events/{eventTemplateId}/{eventId}": { + "get": { + "tags": [ + "Events" + ], + "summary": "Get an event instance", + "description": "Retrieve an event instance, specified by template ID and event ID.", + "operationId": "get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}_getById", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "eventId", + "in": "path", + "description": "The event ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "eventTemplateId", + "id", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This should be unique to the app and event template. If you use the same ID for different CRM objects, the last to be processed will win and the first will not have a record. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + }, + "objectType": { + "type": "string", + "description": "The ObjectType associated with the EventTemplate." + } + }, + "description": "The current state of the timeline event.", + "example": { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-004-invalid", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:37:15.569Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "oauth2": [ + "crm.objects.deals.read" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.companies.read" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.read" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.read" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.read" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.read" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.read" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.read.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.read" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read.v2" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.read" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.read" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.read" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/events/batch/create": { + "post": { + "tags": [ + "Events" + ], + "summary": "Create multiple events", + "description": "Batch create multiple instances of timeline events based on an event template. Once created, these event are immutable on the object timeline and cannot be modified. If the event template was configured to update object properties via `objectPropertyName`, this call will also attempt to updates those properties, or add them if they don't exist.", + "operationId": "post-/integrators/timeline/v3/events/batch/create_createBatch", + "parameters": [], + "requestBody": { + "description": "The timeline event definition.", + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "A collection of timeline events we want to create.", + "items": { + "required": [ + "eventTemplateId", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + } + }, + "description": "The state of the timeline event.", + "example": { + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "tokens": { + "petName": "Art3mis", + "petAge": 3, + "petColor": "black" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + } + } + }, + "description": "Used to create timeline events in batches.", + "example": { + "inputs": [ + { + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "tokens": { + "petName": "Art3mis", + "petAge": 3, + "petColor": "black" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + { + "eventTemplateId": "1001298", + "email": "pocket-tiger@petspot.com", + "tokens": { + "petName": "Pocket", + "petAge": 3, + "petColor": "yellow" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good kitty?", + "answer": "Purr..." + }, + { + "question": "Will you stop playing with that?", + "answer": "Meow!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Pocket", + "headerLabel": "Pocket Tiger", + "url": "https://my.petspot.com/pets/Pocket", + "width": 600, + "height": 400 + } + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The time the request was completed.", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "description": "The time the request occurred.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The time the request began processing.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "description": "Successfully created events.", + "items": { + "required": [ + "eventTemplateId", + "id", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This should be unique to the app and event template. If you use the same ID for different CRM objects, the last to be processed will win and the first will not have a record. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + }, + "objectType": { + "type": "string", + "description": "The ObjectType associated with the EventTemplate." + } + }, + "description": "The current state of the timeline event.", + "example": { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-004-invalid", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:37:15.569Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + } + }, + "status": { + "type": "string", + "description": "The status of the batch response. Should always be COMPLETED if processed.", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "The state of the batch event request.", + "example": { + "results": [ + { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-6edaa73d-d734-404d-908f-74774d58ac2b", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:13:25.665Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + { + "objectType": "contacts", + "id": "petspot:1001298:pocket-tiger@petspot.com-0df6277b-6eba-4d1f-8c19-1994cbfaa4ca", + "eventTemplateId": "1001298", + "email": "pocket-tiger@petspot.com", + "objectId": "28651", + "timestamp": "2020-01-30T18:13:25.665Z", + "tokens": { + "petName": "Pocket", + "petColor": "yellow", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good kitty?", + "answer": "Purr..." + }, + { + "question": "Will you stop playing with that?", + "answer": "Meow!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Pocket", + "headerLabel": "Pocket Tiger", + "url": "https://my.petspot.com/pets/Pocket", + "width": 600, + "height": 400 + } + } + ], + "status": "COMPLETE", + "startedAt": "2020-01-30T18:13:24.974023Z", + "completedAt": "2020-01-30T18:13:26.227559Z" + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "eventTemplateId", + "id", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This should be unique to the app and event template. If you use the same ID for different CRM objects, the last to be processed will win and the first will not have a record. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + }, + "objectType": { + "type": "string", + "description": "The ObjectType associated with the EventTemplate." + } + }, + "description": "The current state of the timeline event.", + "example": { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-004-invalid", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:37:15.569Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "200": { + "description": "", + "content": { + "application/json": { + "example": { + "results": [ + { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-b9d73144-41bb-46c8-9a3f-f0849c1ad7e6", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:10:17.057Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + { + "objectType": "contacts", + "id": "petspot:1001298:pocket-tiger@petspot.com-c09a620f-60a4-46a8-be9f-fe0609fc3f0e", + "eventTemplateId": "1001298", + "email": "pocket-tiger@petspot.com", + "objectId": "28651", + "timestamp": "2020-01-30T18:10:17.057Z", + "tokens": { + "petName": "Pocket", + "petColor": "yellow", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good kitty?", + "answer": "Purr..." + }, + { + "question": "Will you stop playing with that?", + "answer": "Meow!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Pocket", + "headerLabel": "Pocket Tiger", + "url": "https://my.petspot.com/pets/Pocket", + "width": 600, + "height": 400 + } + } + ], + "status": "COMPLETE", + "startedAt": "2020-01-30T18:10:16.478734Z", + "completedAt": "2020-01-30T18:10:17.793206Z" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "tickets" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write" + ] + }, + { + "oauth2": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps": [ + "tickets.sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write" + ] + }, + { + "private_apps_legacy": [ + "contacts" + ] + }, + { + "private_apps": [ + "crm.schemas.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write" + ] + }, + { + "oauth2": [ + "crm.objects.deals.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "tickets" + ] + }, + { + "private_apps": [ + "tickets.sensitive.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.companies.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.deals.write" + ] + }, + { + "oauth2": [ + "tickets.sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.objects.deals.write" + ] + }, + { + "private_apps": [ + "crm.objects.deals.sensitive.write" + ] + }, + { + "private_apps": [ + "crm.objects.companies.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive.v2" + ] + }, + { + "oauth2": [ + "crm.schemas.deals.write" + ] + }, + { + "oauth2": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.write" + ] + }, + { + "oauth2": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.objects.companies.sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.highly_sensitive.write.v2" + ] + }, + { + "oauth2": [ + "crm.objects.contacts.sensitive.write.v2" + ] + }, + { + "private_apps": [ + "crm.schemas.companies.write" + ] + }, + { + "private_apps": [ + "tickets.highly_sensitive" + ] + }, + { + "private_apps": [ + "crm.objects.contacts.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "timeline" + ] + }, + { + "oauth2": [ + "timeline" + ] + }, + { + "private_apps": [ + "crm.objects.deals.highly_sensitive.write" + ] + }, + { + "private_apps": [ + "crm.schemas.deals.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 12, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/{appId}/event-templates": { + "get": { + "tags": [ + "Templates" + ], + "summary": "Get all event templates", + "description": "Retrieve all templates defined for an app.", + "operationId": "get-/integrators/timeline/v3/{appId}/event-templates_getAll", + "parameters": [ + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "id", + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "The current state of the template definition." + } + } + } + }, + "example": { + "results": [ + { + "id": "15758", + "objectType": "companies", + "name": "company test", + "headerTemplate": "abcde", + "tokens": [] + }, + { + "id": "1000151", + "objectType": "deals", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "name": "deal test", + "headerTemplate": "deal", + "detailTemplate": "Deal occurred at {{#formatDate timestamp}}{{/formatDate}}\n\ntest", + "tokens": [ + { + "name": "test", + "type": "string", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "test", + "objectPropertyName": "test", + "options": [] + } + ] + }, + { + "id": "1001298", + "objectType": "contacts", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "name": "PetSpot Registration", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT", + "tokens": [ + { + "name": "petAge", + "type": "number", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Age", + "options": [] + }, + { + "name": "petColor", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Color", + "options": [ + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "other", + "label": "Other" + }, + { + "value": "white", + "label": "White" + }, + { + "value": "yellow", + "label": "Yellow" + } + ] + }, + { + "name": "petName", + "type": "string", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Name", + "options": [] + } + ] + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Templates" + ], + "summary": "Create an event template", + "description": "Event templates define the general structure for a custom timeline event, and enable you to send event data to HubSpot. A template includes formatted copy for its heading and details, as well as any custom property definitions. A single app can include up to 750 event templates.
the `v1` and `v3` timeline events APIs are only available for app partners with existing `v1`/`v3` timeline events defined in their public app. If you're not an app partner, you can send custom event data to HubSpot using the [custom events API](/api-reference/events-manage-event-definitions-v3/guide).", + "operationId": "post-/integrators/timeline/v3/{appId}/event-templates_create", + "parameters": [ + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "The new event template definition.", + "content": { + "application/json": { + "schema": { + "required": [ + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + } + }, + "description": "State of the template definition being created.", + "example": { + "name": "PetSpot Registration", + "objectType": "contacts", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}", + "tokens": [ + { + "name": "petName", + "label": "Pet Name", + "type": "string" + }, + { + "name": "petAge", + "label": "Pet Age", + "type": "number" + }, + { + "name": "petColor", + "label": "Pet Color", + "type": "enumeration", + "options": [ + { + "value": "white", + "label": "White" + }, + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "other", + "label": "Other" + } + ] + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "The current state of the template definition." + }, + "example": { + "id": "1001298", + "objectType": "contacts", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "name": "PetSpot Registration", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}", + "tokens": [ + { + "name": "petName", + "type": "string", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Name", + "options": [] + }, + { + "name": "petAge", + "type": "number", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Age", + "options": [] + }, + { + "name": "petColor", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Color", + "options": [ + { + "value": "white", + "label": "White" + }, + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "other", + "label": "Other" + } + ] + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 12, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}": { + "get": { + "tags": [ + "Templates" + ], + "summary": "Get an event template", + "description": "Retrieve an event type template by ID.", + "operationId": "get-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}_getById", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "The current state of the template definition." + }, + "example": { + "id": "1001298", + "objectType": "contacts", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "name": "PetSpot Registration", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT", + "tokens": [ + { + "name": "petAge", + "type": "number", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Age", + "options": [] + }, + { + "name": "petColor", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Color", + "options": [ + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "other", + "label": "Other" + }, + { + "value": "white", + "label": "White" + }, + { + "value": "yellow", + "label": "Yellow" + } + ] + }, + { + "name": "petName", + "type": "string", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Name", + "options": [] + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Templates" + ], + "summary": "Update an event template", + "description": "Update an existing event template, specified by ID.", + "operationId": "put-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}_update", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "The updated event template definition.", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "tokens" + ], + "type": "object", + "properties": { + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + } + }, + "description": "State of the template definition being updated.", + "example": { + "id": "1001298", + "name": "PetSpot Registration", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT", + "tokens": [ + { + "name": "petName", + "label": "Pet Name", + "type": "string", + "objectPropertyName": "firstname" + }, + { + "name": "petAge", + "label": "Pet Age", + "type": "number" + }, + { + "name": "petColor", + "label": "Pet Color", + "type": "enumeration", + "options": [ + { + "value": "white", + "label": "White" + }, + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "yellow", + "label": "Yellow" + }, + { + "value": "other", + "label": "Other" + } + ] + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "The current state of the template definition." + }, + "example": { + "id": "1001298", + "objectType": "contacts", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "name": "PetSpot Registration", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT", + "tokens": [ + { + "name": "petAge", + "type": "number", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Age", + "options": [] + }, + { + "name": "petColor", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Color", + "options": [ + { + "value": "white", + "label": "White" + }, + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "yellow", + "label": "Yellow" + }, + { + "value": "other", + "label": "Other" + } + ] + }, + { + "name": "petName", + "type": "string", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Name", + "objectPropertyName": "firstname", + "options": [] + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 12, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Templates" + ], + "summary": "Delete an event template", + "description": "Delete an event type template by ID.", + "operationId": "delete-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}_archive", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens": { + "post": { + "tags": [ + "Tokens" + ], + "summary": "Add tokens to an existing template", + "description": "Update an existing event type template with new tokens.", + "operationId": "post-/integrators/timeline/v3/{appId}/event-templates/{eventTemplateId}/tokens_create", + "parameters": [ + { + "name": "eventTemplateId", + "in": "path", + "description": "The event template ID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "path", + "description": "The ID of the target app.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "The new token definition.", + "content": { + "application/json": { + "schema": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + }, + "example": { + "name": "petType", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "label": "Pet Type", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 8, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/extensions/calling/transcripts": { + "post": { + "tags": [ + "Transcripts" + ], + "operationId": "post-/crm/v3/extensions/calling/transcripts", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "engagementId", + "transcriptCreateUtterances" + ], + "type": "object", + "properties": { + "transcriptCreateUtterances": { + "type": "array", + "items": { + "required": [ + "endTimeMillis", + "speaker", + "startTimeMillis", + "text" + ], + "type": "object", + "properties": { + "endTimeMillis": { + "type": "integer", + "format": "int32" + }, + "startTimeMillis": { + "type": "integer", + "format": "int32" + }, + "speaker": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "email": { + "type": "string" + } + } + }, + "text": { + "type": "string" + }, + "languageCode": { + "type": "string" + } + } + } + }, + "engagementId": { + "type": "integer", + "format": "int64" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.extensions_calling_transcripts.write" + ] + }, + { + "private_apps": [ + "crm.extensions_calling_transcripts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 8, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/extensions/calling/transcripts/{transcriptId}": { + "get": { + "tags": [ + "Transcripts" + ], + "operationId": "get-/crm/v3/extensions/calling/transcripts/{transcriptId}", + "parameters": [ + { + "name": "transcriptId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "engagementId", + "id", + "transcriptSource", + "transcriptUtterances", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "transcriptUtterances": { + "type": "array", + "items": { + "required": [ + "endTimeMillis", + "id", + "startTimeMillis", + "text" + ], + "type": "object", + "properties": { + "endTimeMillis": { + "type": "integer", + "format": "int32" + }, + "startTimeMillis": { + "type": "integer", + "format": "int32" + }, + "speaker": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "email": { + "type": "string" + } + } + }, + "text": { + "type": "string" + }, + "id": { + "type": "string" + }, + "languageCode": { + "type": "string" + } + } + } + }, + "transcriptSource": { + "type": "string", + "enum": [ + "HUBSPOT_GENERATED", + "INTEGRATOR_GENERATED" + ] + }, + "id": { + "type": "string" + }, + "engagementId": { + "type": "integer", + "format": "int64" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.extensions_calling_transcripts.read" + ] + }, + { + "oauth2": [ + "crm.extensions_calling_transcripts.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Transcripts" + ], + "operationId": "delete-/crm/v3/extensions/calling/transcripts/{transcriptId}", + "parameters": [ + { + "name": "transcriptId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.extensions_calling_transcripts.write" + ] + }, + { + "private_apps": [ + "crm.extensions_calling_transcripts.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/search": { + "post": { + "tags": [ + "Search" + ], + "operationId": "post-/crm/v3/objects/users/search", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + } + } + } + } + } + }, + "description": "Describes a search request" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 10, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of users", + "operationId": "post-/crm/v3/objects/users/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Archive a batch of users by ID", + "operationId": "post-/crm/v3/objects/users/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of users by internal ID, or unique property values", + "description": "Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. ", + "operationId": "post-/crm/v3/objects/users/batch/read", + "parameters": [ + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/batch/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or update a batch of users by unique property values", + "description": "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId": "post-/crm/v3/objects/users/batch/upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/{userId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Read", + "description": "Read an Object identified by `{userId}`. `{userId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/users/{userId}", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Archive", + "description": "Move an Object identified by `{userId}` to the recycling bin.", + "operationId": "delete-/crm/v3/objects/users/{userId}", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update", + "description": "Perform a partial update of an Object identified by `{userId}`or optionally a unique property value as specified by the `idProperty` query param. `{userId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string.", + "operationId": "patch-/crm/v3/objects/users/{userId}", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "idProperty", + "in": "query", + "description": "The name of a property whose values are unique for this object", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of users by internal ID, or unique property values", + "operationId": "post-/crm/v3/objects/users/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/crm/v3/objects/users": { + "get": { + "tags": [ + "Basic" + ], + "summary": "List", + "description": "Read a page of users. Control what is returned via the `properties` query param.", + "operationId": "get-/crm/v3/objects/users", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "propertiesWithHistory", + "in": "query", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of users that can be read by a single request.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "associations", + "in": "query", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + } + } + } + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.read" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.read" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Basic" + ], + "summary": "Create", + "description": "Create a user with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard users is provided.", + "operationId": "post-/crm/v3/objects/users", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + } + }, + "to": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2_legacy": [] + }, + { + "oauth2": [ + "crm.objects.users.write" + ] + }, + { + "private_apps_legacy": [] + }, + { + "private_apps": [ + "crm.objects.users.write" + ] + } + ], + "x-moar-original-servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + } + }, + "components": { + "schemas": { + "CreatedResponseSimplePublicObject": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "createdResourceId": { + "type": "string", + "description": "The unique identifier of the newly created resource." + }, + "location": { + "type": "string", + "description": "The URL location of the newly created resource." + }, + "entity": { + "$ref": "#/components/schemas/SimplePublicObject" + } + } + }, + "StandardError": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error." + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error." + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance." + }, + "category": { + "type": "string", + "description": "The main category of the error." + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps." + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "items": { + "$ref": "#/components/schemas/ErrorDetail" + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error." + } + }, + "description": "Ye olde error" + }, + "CollectionResponseAssociatedId": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssociatedId" + } + } + } + }, + "CollectionResponseWithTotalSimplePublicObject": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The number of available results", + "format": "int32" + }, + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + } + } + }, + "LabelsBetweenObjectPair": { + "required": [ + "fromObjectId", + "fromObjectTypeId", + "labels", + "toObjectId", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "fromObjectTypeId": { + "type": "string", + "description": "The type ID of the originating object in the label association." + }, + "toObjectId": { + "type": "string", + "description": "The ID of the target object in the label association." + }, + "toObjectTypeId": { + "type": "string", + "description": "The type ID of the target object in the label association." + }, + "fromObjectId": { + "type": "string", + "description": "The ID of the originating object in the label association." + }, + "labels": { + "type": "array", + "description": "An array of labels associated with the object pair.", + "items": { + "type": "string" + } + } + } + }, + "PublicAssociationsForObject": { + "required": [ + "to", + "types" + ], + "type": "object", + "properties": { + "types": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssociationSpec" + } + }, + "to": { + "$ref": "#/components/schemas/PublicObjectId" + } + } + }, + "BatchResponseSimplePublicObject": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + }, + "FilterGroup": { + "required": [ + "filters" + ], + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filter" + } + } + } + }, + "MultiAssociatedObjectWithLabel": { + "required": [ + "associationTypes", + "toObjectId" + ], + "type": "object", + "properties": { + "associationTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssociationSpecWithLabel" + } + }, + "toObjectId": { + "type": "string" + } + } + }, + "ErrorDetail": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + }, + "SimplePublicObjectId": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "AssociationSpecWithLabel": { + "required": [ + "category", + "typeId" + ], + "type": "object", + "properties": { + "typeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string" + }, + "category": { + "type": "string", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + } + } + }, + "CreatedResponseLabelsBetweenObjectPair": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "createdResourceId": { + "type": "string" + }, + "location": { + "type": "string" + }, + "entity": { + "$ref": "#/components/schemas/LabelsBetweenObjectPair" + } + } + }, + "BatchReadInputSimplePublicObjectId": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string", + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectId" + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + }, + "BatchResponseSimplePublicUpsertObject": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicUpsertObject" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + }, + "BatchInputSimplePublicObjectId": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectId" + } + } + } + }, + "ValueWithTimestamp": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The unique ID of the property." + }, + "sourceType": { + "type": "string", + "description": "The property type." + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label." + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who last updated the property.", + "format": "int32" + }, + "value": { + "type": "string", + "description": "The property value." + }, + "timestamp": { + "type": "string", + "description": "The timestamp when the property was updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Property model that includes timestamp." + }, + "BatchInputSimplePublicObjectBatchInputUpsert": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectBatchInputUpsert" + } + } + } + }, + "SimplePublicObject": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + }, + "PublicObjectId": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "Paging": { + "type": "object", + "properties": { + "next": { + "$ref": "#/components/schemas/NextPage" + }, + "prev": { + "$ref": "#/components/schemas/PreviousPage" + } + } + }, + "CollectionResponseMultiAssociatedObjectWithLabel": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MultiAssociatedObjectWithLabel" + } + } + } + }, + "PublicDefaultAssociation": { + "required": [ + "associationSpec", + "from", + "to" + ], + "type": "object", + "properties": { + "associationSpec": { + "$ref": "#/components/schemas/AssociationSpec" + }, + "from": { + "$ref": "#/components/schemas/PublicObjectId" + }, + "to": { + "$ref": "#/components/schemas/PublicObjectId" + } + } + }, + "PublicObjectSearchRequest": { + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ], + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "$ref": "#/components/schemas/FilterGroup" + } + } + }, + "description": "Describes a search request" + }, + "Error": { + "required": [ + "category", + "correlationId", + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "invalidPropertyName": [ + "propertyValue" + ], + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "correlationId": { + "type": "string", + "description": "A unique identifier for the request. Include this value with any error reports or support tickets", + "format": "uuid", + "example": "aeb5f871-7f07-4993-9211-075dc63e7cbf" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of link names to associated URIs containing documentation about the error or recommended remediation steps" + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate", + "example": "An error occurred" + }, + "category": { + "type": "string", + "description": "The error category" + }, + "errors": { + "type": "array", + "description": "further information about the error", + "items": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + }, + "example": { + "message": "Invalid input (details will vary based on the error)", + "correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf", + "category": "VALIDATION_ERROR", + "links": { + "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base" + } + } + }, + "SimplePublicObjectBatchInputUpsert": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + }, + "PublicGdprDeleteInput": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectId": { + "type": "string" + } + } + }, + "SimplePublicObjectInput": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + }, + "BatchResponsePublicDefaultAssociation": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicDefaultAssociation" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "AssociationSpec": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "The category of the association, such as \"HUBSPOT_DEFINED\".", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The ID representing the specific type of association.", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + }, + "PublicMergeInput": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string" + }, + "primaryObjectId": { + "type": "string" + } + } + }, + "CollectionResponseSimplePublicObjectWithAssociations": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectWithAssociations" + } + } + } + }, + "SimplePublicObjectWithAssociations": { + "required": [ + "archived", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CollectionResponseAssociatedId" + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + }, + "Filter": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string", + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "type": "string", + "description": "The name of the property to apply the filter to." + }, + "values": { + "type": "array", + "description": "The values to match against the property.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "description": "The value to match against the property." + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + }, + "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. " + }, + "BatchInputSimplePublicObjectBatchInput": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectBatchInput" + } + } + } + }, + "PreviousPage": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "The offset of the previous page of records.", + "example": "" + }, + "link": { + "type": "string", + "description": "A direct link to the request for the previous page of records.", + "example": "" + } + }, + "description": "The cursor for the previous page of records." + }, + "SimplePublicUpsertObject": { + "required": [ + "archived", + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + }, + "SimplePublicObjectBatchInput": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + }, + "SimplePublicObjectBatchInputForCreate": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationsForObject" + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "AssociatedId": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association" + }, + "NextPage": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response", + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "SimplePublicObjectInputForCreate": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationsForObject" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + }, + "BatchInputSimplePublicObjectBatchInputForCreate": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectBatchInputForCreate" + } + } + } + }, + "PublicObjectId2": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique ID that identifies an object." + } + }, + "example": { + "id": "37295" + } + }, + "PublicAssociationMulti": { + "required": [ + "from", + "to" + ], + "type": "object", + "properties": { + "from": { + "$ref": "#/components/schemas/PublicObjectId" + }, + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "to": { + "type": "array", + "description": "The IDs of objects that are associated with the object identified by the ID in 'from'.", + "items": { + "$ref": "#/components/schemas/AssociatedId" + } + } + }, + "example": { + "from": { + "id": "53628" + }, + "to": [ + { + "id": "12726", + "type": "contact_to_company" + }, + { + "id": "61352", + "type": "contact_to_company" + } + ] + } + }, + "PublicAssociation": { + "required": [ + "from", + "to", + "type" + ], + "type": "object", + "properties": { + "from": { + "$ref": "#/components/schemas/PublicObjectId" + }, + "to": { + "$ref": "#/components/schemas/PublicObjectId" + }, + "type": { + "type": "string" + } + }, + "example": { + "from": { + "id": "53628" + }, + "to": { + "id": "12726" + }, + "type": "contact_to_company" + } + }, + "BatchInputPublicObjectId": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicObjectId" + } + } + } + }, + "BatchResponsePublicAssociation": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociation" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "BatchResponsePublicAssociationMulti": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationMulti" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "AssociatedId2": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the association type." + }, + "type": { + "type": "string", + "description": "The type of association.", + "example": "deal_to_contact" + } + }, + "description": "Contains the id and type of an association", + "example": { + "id": "172859", + "type": "contact_to_company" + } + }, + "NextPage2": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results." + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + }, + "BatchInputPublicAssociation": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociation" + } + } + } + }, + "CollectionResponsePublicAssociationDefinitionNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationDefinition" + } + } + } + }, + "PublicAssociationDefinition": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "example": { + "id": "1", + "name": "contact_to_company" + } + }, + "CreatedResponseSimplePublicObject2": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "$ref": "#/components/schemas/SimplePublicObject" + } + } + }, + "LabelsBetweenObjectPair2": { + "required": [ + "fromObjectId", + "fromObjectTypeId", + "labels", + "toObjectId", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "fromObjectTypeId": { + "type": "string" + }, + "fromObjectId": { + "type": "string" + }, + "toObjectTypeId": { + "type": "string" + }, + "toObjectId": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SimplePublicObject2": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + }, + "PublicObjectSearchRequest2": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "type": "integer", + "description": "The maximum results to return, up to 200 objects.", + "format": "int32" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "type": "array", + "description": "Specifies sorting order based on object properties.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "A list of property names to include in the response.", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "description": "Up to 6 groups of filters defining additional query criteria.", + "items": { + "$ref": "#/components/schemas/FilterGroup" + } + } + }, + "description": "Describes a search request" + }, + "SimplePublicObjectWithAssociations2": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CollectionResponseAssociatedId" + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + }, + "SimplePublicUpsertObject2": { + "required": [ + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + }, + "SimplePublicObjectBatchInputForCreate2": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationsForObject" + } + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "SimplePublicObjectInputForCreate2": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationsForObject" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + }, + "BatchResponseSimplePublicObject2": { + "required": [ + "completedAt", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch processing was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch request was initially made, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch processing began, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request: \"PENDING\", \"PROCESSING\", \"CANCELLED\", or \"COMPLETE\"", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "A public object batch response object" + }, + "PauseSubscriptionRequest": { + "type": "object", + "properties": { + "pauseReason": { + "type": "string" + } + } + }, + "UnpauseRequest": { + "required": [ + "proposedNextBillingDate" + ], + "type": "object", + "properties": { + "proposedNextBillingDate": { + "type": "integer", + "format": "int64" + } + } + }, + "BatchReadInputSimplePublicObjectId2": { + "required": [ + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object and their histories.", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectId" + } + }, + "properties": { + "type": "array", + "description": "Key-value pairs for setting properties for the new object.", + "items": { + "type": "string" + } + } + }, + "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property." + }, + "BatchResponseSimplePublicUpsertObject2": { + "required": [ + "completedAt", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The timestamp when the batch process was completed, in ISO 8601 format.", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "description": "The timestamp when the batch process was initiated, in ISO 8601 format.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The timestamp when the batch process began execution, in ISO 8601 format.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "An object containing relevant links related to the batch request." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicUpsertObject" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "description": "The status of the batch processing request. Can be: \"PENDING\", \"PROCESSING\", \"CANCELED\", or \"COMPLETE\".", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Represents the result of a batch upsert operation, including the operation\u2019s status, timestamps, and a list of successfully created or updated objects." + }, + "SimplePublicObjectBatchInputUpsert2": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a unique identifier property, which can be used for identifying objects instead of the object ID." + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + }, + "PublicGdprDeleteInput2": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "objectId": { + "type": "string" + }, + "idProperty": { + "type": "string" + } + } + }, + "SimplePublicObjectBatchInput2": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a unique identifier property, which can be used for identifying objects instead of the object ID.", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + }, + "PublicObjectId3": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the target record to associate." + } + } + }, + "SimplePublicObjectBatchInputUpsert3": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "type": "string", + "description": "In each input object, set this field to a unique ID value to enable more granular debugging for error responses. Learn more about [multi-status errors](https://developers.hubspot.com/docs/reference/api/other-resources/error-handling#multi-status-errors)." + }, + "id": { + "type": "string", + "description": "The ID of the company to update." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The company property values to set." + } + }, + "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID." + }, + "PublicGdprDeleteInput3": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a unique property, when identifying records by property instead of ID. " + }, + "objectId": { + "type": "string", + "description": "The ID of the company to delete." + } + } + }, + "SimplePublicObjectInput2": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The company property values to set." + } + }, + "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", + "example": { + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + } + } + }, + "AssociationSpec2": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "description": "For [labeled associations](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4#associate-records-with-a-label), the category of the association.", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "description": "The [association type ID](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4#association-type-id-values) (e.g., `4` for contact-to-company associations).", + "format": "int32" + } + }, + "description": "Defines the type, direction, and details of the relationship between two CRM objects." + }, + "PublicMergeInput2": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string", + "description": "The ID of the company to merge into the primary." + }, + "primaryObjectId": { + "type": "string", + "description": "The ID of the primary company, which the other will merge into." + } + } + }, + "SimplePublicObjectBatchInput3": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "In each input object, set this field to a unique ID value to enable more granular debugging for error responses. Learn more about [multi-status errors](https://developers.hubspot.com/docs/reference/api/other-resources/error-handling#multi-status-errors)." + }, + "id": { + "type": "string", + "description": "The ID to be updated. This can be the object ID, or the unique property value of the `idProperty` property." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The company property values to set." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + }, + "SimplePublicObjectInputForCreate3": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationsForObject" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The company property values to set." + } + }, + "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects." + }, + "StandardError2": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {} + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "id": { + "type": "string" + }, + "category": { + "type": "string" + }, + "message": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ErrorDetail" + } + }, + "status": { + "type": "string" + } + } + }, + "BatchResponseSimplePublicObject3": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "ForwardPaging": { + "type": "object", + "properties": { + "next": { + "$ref": "#/components/schemas/NextPage" + } + } + }, + "BatchReadInputSimplePublicObjectId3": { + "required": [ + "inputs", + "properties", + "propertiesWithHistory" + ], + "type": "object", + "properties": { + "propertiesWithHistory": { + "type": "array", + "items": { + "type": "string" + } + }, + "idProperty": { + "type": "string" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectId" + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ValueWithTimestamp2": { + "required": [ + "sourceType", + "timestamp", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string" + }, + "sourceType": { + "type": "string" + }, + "sourceLabel": { + "type": "string" + }, + "updatedByUserId": { + "type": "integer", + "format": "int32" + }, + "value": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "CollectionResponseWithTotalSimplePublicObjectForwardPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + } + } + }, + "SimplePublicObject3": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "example": false + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id": { + "type": "string", + "example": "512" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "id": "512", + "properties": { + "company": "Biglytics", + "createdate": "2019-10-30T03:30:17.883Z", + "email": "bcooper@biglytics.net", + "firstname": "Bryan", + "lastmodifieddate": "2019-12-07T16:50:06.678Z", + "lastname": "Cooper", + "phone": "(877) 929-0687", + "website": "biglytics.net" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false + } + }, + "PublicObjectSearchRequest3": { + "required": [ + "after", + "filterGroups", + "limit", + "properties", + "sorts" + ], + "type": "object", + "properties": { + "query": { + "type": "string" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "after": { + "type": "string" + }, + "sorts": { + "type": "array", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FilterGroup" + } + } + } + }, + "Error2": { + "required": [ + "category", + "correlationId", + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ], + "invalidPropertyName": [ + "propertyValue" + ] + } + }, + "correlationId": { + "type": "string", + "description": "A unique identifier for the request. Include this value with any error reports or support tickets", + "format": "uuid", + "example": "aeb5f871-7f07-4993-9211-075dc63e7cbf" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of link names to associated URIs containing documentation about the error or recommended remediation steps", + "example": { + "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base" + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate", + "example": "Invalid input (details will vary based on the error)" + }, + "category": { + "type": "string", + "description": "The error category", + "example": "VALIDATION_ERROR" + }, + "errors": { + "type": "array", + "description": "further information about the error", + "items": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + }, + "example": { + "message": "Invalid input (details will vary based on the error)", + "correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf", + "category": "VALIDATION_ERROR", + "links": { + "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base" + } + } + }, + "BatchResponseSimplePublicObjectWithErrors": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "SimplePublicObjectInput3": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + } + }, + "example": { + "properties": { + "email": "bcooper@biglytics.net", + "phone": "(877) 929-0687", + "company": "Biglytics", + "website": "biglytics.net", + "lastname": "Cooper", + "firstname": "Bryan" + }, + "associations": [] + } + }, + "CollectionResponseSimplePublicObjectWithAssociationsForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectWithAssociations" + } + } + } + }, + "AssociationSpec3": { + "required": [ + "associationCategory", + "associationTypeId" + ], + "type": "object", + "properties": { + "associationCategory": { + "type": "string", + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + } + } + }, + "SimplePublicObjectWithAssociations3": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CollectionResponseAssociatedId" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "properties": { + "company": "Biglytics", + "createdate": "2019-10-30T03:30:17.883Z", + "email": "bcooper@biglytics.net", + "firstname": "Bryan", + "lastmodifieddate": "2019-12-07T16:50:06.678Z", + "lastname": "Cooper", + "phone": "(877) 929-0687", + "website": "biglytics.net" + } + } + }, + "Filter2": { + "required": [ + "operator", + "propertyName" + ], + "type": "object", + "properties": { + "highValue": { + "type": "string" + }, + "propertyName": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "description": "null", + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ] + } + } + }, + "BatchInputSimplePublicObjectInputForCreate": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObjectInputForCreate" + } + } + } + }, + "PreviousPage2": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string" + }, + "link": { + "type": "string" + } + } + }, + "SimplePublicObjectBatchInput4": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "example": { + "id": "1", + "properties": { + "email": "bcooper@biglytics.net", + "phone": "(877) 929-0687", + "company": "Biglytics", + "website": "biglytics.net", + "lastname": "Cooper", + "firstname": "Bryan" + } + } + }, + "AssociatedId3": { + "required": [ + "id", + "type" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "NextPage3": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "example": "?after=NTI1Cg%3D%3D" + }, + "after": { + "type": "string", + "example": "NTI1Cg%3D%3D" + } + }, + "example": { + "after": "NTI1Cg%3D%3D", + "link": "?after=NTI1Cg%3D%3D" + } + }, + "SimplePublicObjectInputForCreate4": { + "required": [ + "associations", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAssociationsForObject" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "example": { + "properties": { + "email": "bcooper@biglytics.net", + "phone": "(877) 929-0687", + "company": "Biglytics", + "website": "biglytics.net", + "lastname": "Cooper", + "firstname": "Bryan" + }, + "associations": [] + } + }, + "PublicGdprDeleteInput4": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a property whose values are unique for this object. An alternative to identifying a contact by ID." + }, + "objectId": { + "type": "string", + "description": "The ID of the contact to permanently delete." + } + } + }, + "PublicMergeInput3": { + "required": [ + "objectIdToMerge", + "primaryObjectId" + ], + "type": "object", + "properties": { + "objectIdToMerge": { + "type": "string", + "description": "The object ID of the record that the merge will not set as the current value after the merge." + }, + "primaryObjectId": { + "type": "string", + "description": "The object ID of the record that the merge will generally set as the current value after the merge." + } + } + }, + "SimplePublicUpsertObject3": { + "required": [ + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier for tracing the creation request." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + }, + "SimplePublicObjectBatchInput5": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "idProperty": { + "type": "string", + "description": "The name of a unique property, when identifying records by property. ", + "example": "my_unique_property_name" + }, + "objectWriteTraceId": { + "type": "string", + "description": "A unique identifier for tracing the request." + }, + "id": { + "type": "string", + "description": "The ID of the contact to update. This can be the object ID, or the unique property value of the `idProperty` property." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties." + }, + "PublicOwner": { + "required": [ + "archived", + "createdAt", + "id", + "type", + "updatedAt" + ], + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "The first name of the owner." + }, + "lastName": { + "type": "string", + "description": "The last name of the owner." + }, + "createdAt": { + "type": "string", + "description": "The date and time when the owner was created.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Indicates whether the owner is archived." + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicTeam" + } + }, + "id": { + "type": "string", + "description": "The unique identifier of the owner." + }, + "userIdIncludingInactive": { + "type": "integer", + "description": "The user ID of the owner, including inactive users.", + "format": "int32" + }, + "type": { + "type": "string", + "description": "The type of the owner, which can be either PERSON or QUEUE.", + "enum": [ + "PERSON", + "QUEUE" + ] + }, + "userId": { + "type": "integer", + "description": "The user ID of the owner.", + "format": "int32" + }, + "email": { + "type": "string", + "description": "The email address of the owner." + }, + "updatedAt": { + "type": "string", + "description": "The date and time when the owner was last updated.", + "format": "date-time" + } + }, + "example": { + "id": "6166860", + "email": "jsmith@example.com", + "firstName": "John", + "lastName": "Smith", + "userId": 1296619, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "teams": [ + { + "id": "178588", + "name": "West Coast Sales", + "primary": true + }, + { + "id": "178590", + "name": "California Sales", + "primary": false + } + ] + } + }, + "PublicTeam": { + "required": [ + "id", + "name", + "primary" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "primary": { + "type": "boolean" + } + } + }, + "CollectionResponsePublicOwnerForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicOwner" + } + } + } + }, + "PublicDealSplitInput": { + "required": [ + "ownerId", + "percentage" + ], + "type": "object", + "properties": { + "percentage": { + "type": "number" + }, + "ownerId": { + "type": "integer", + "format": "int32" + } + } + }, + "DealToDealSplits": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimplePublicObject" + } + }, + "id": { + "type": "string" + } + } + }, + "PublicDealSplitsCreateRequest": { + "required": [ + "id", + "splits" + ], + "type": "object", + "properties": { + "splits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicDealSplitInput" + } + }, + "id": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicDealSplitsBatchCreateRequest": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicDealSplitsCreateRequest" + } + } + } + }, + "BatchResponseDealToDealSplits": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DealToDealSplits" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "SimplePublicObject4": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived.", + "example": false + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history.", + "example": "" + }, + "id": { + "type": "string", + "description": "The unique ID of the object.", + "example": "" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object.", + "example": "" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object." + }, + "BatchResponseDealToDealSplitsWithErrors": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DealToDealSplits" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "ObjectTypeDefinition": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + }, + "AssociationRecordLimitResponse": { + "required": [ + "atLimitFromRecordSamples", + "limit", + "nearLimitFromRecordSamples", + "totalRecordsAtLimit", + "totalRecordsNearLimit" + ], + "type": "object", + "properties": { + "totalRecordsAtLimit": { + "type": "integer", + "format": "int32" + }, + "atLimitFromRecordSamples": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AtLimitRecordSample" + } + }, + "totalRecordsNearLimit": { + "type": "integer", + "format": "int32" + }, + "limit": { + "type": "integer", + "format": "int64" + }, + "nearLimitFromRecordSamples": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NearLimitRecordSample" + } + } + } + }, + "UsageForObjectType": { + "required": [ + "objectTypeId", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + }, + "AssociationLabelLimitResponse": { + "required": [ + "allLabels", + "fromObjectType", + "limit", + "percentage", + "toObjectType", + "usage" + ], + "type": "object", + "properties": { + "allLabels": { + "type": "array", + "items": { + "type": "string" + } + }, + "fromObjectType": { + "$ref": "#/components/schemas/ObjectTypeDefinition" + }, + "toObjectType": { + "$ref": "#/components/schemas/ObjectTypeDefinition" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int32" + } + } + }, + "CustomPropertyLimitResponse": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int64" + }, + "byObjectType": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LimitAndUsageForObjectType" + } + }, + "overallLimit": { + "type": "integer", + "format": "int64" + }, + "overallPercentage": { + "type": "number" + } + } + }, + "CustomObjectRecordLimitResponse": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int32" + }, + "byObjectType": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UsageForObjectType" + } + }, + "overallLimit": { + "type": "integer", + "format": "int32" + }, + "overallPercentage": { + "type": "number" + } + } + }, + "AtLimitRecordSample": { + "required": [ + "label", + "objectId" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "objectId": { + "type": "integer", + "format": "int32" + } + } + }, + "RecordLimitResponse": { + "required": [ + "customObjectTypes", + "hubspotDefinedObjectTypes" + ], + "type": "object", + "properties": { + "customObjectTypes": { + "$ref": "#/components/schemas/CustomObjectRecordLimitResponse" + }, + "hubspotDefinedObjectTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LimitAndUsageForObjectType" + } + } + } + }, + "ObjectTypeNearOrAtAssociationLimit": { + "required": [ + "hasRecordsAtLimit", + "hasRecordsNearLimit", + "objectTypeId", + "pluralLabel", + "singularLabel" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "pluralLabel": { + "type": "string" + }, + "hasRecordsNearLimit": { + "type": "boolean" + }, + "singularLabel": { + "type": "string" + }, + "hasRecordsAtLimit": { + "type": "boolean" + } + } + }, + "CalculatedPropertyLimitResponse": { + "required": [ + "byObjectType", + "overallLimit", + "overallPercentage", + "overallUsage" + ], + "type": "object", + "properties": { + "overallUsage": { + "type": "integer", + "format": "int64" + }, + "byObjectType": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UsageForObjectType" + } + }, + "overallLimit": { + "type": "integer", + "format": "int64" + }, + "overallPercentage": { + "type": "number" + } + } + }, + "CustomObjectLimitResponse": { + "required": [ + "limit", + "percentage", + "usage" + ], + "type": "object", + "properties": { + "usage": { + "type": "integer", + "format": "int64" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int64" + } + } + }, + "LimitAndUsageForObjectType": { + "required": [ + "limit", + "objectTypeId", + "percentage", + "pluralLabel", + "singularLabel", + "usage" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "pluralLabel": { + "type": "string" + }, + "singularLabel": { + "type": "string" + } + } + }, + "NearLimitRecordSample": { + "required": [ + "label", + "objectId", + "percentage", + "usage" + ], + "type": "object", + "properties": { + "usage": { + "type": "integer", + "format": "int32" + }, + "percentage": { + "type": "number" + }, + "label": { + "type": "string" + }, + "objectId": { + "type": "integer", + "format": "int32" + } + } + }, + "CollectionResponseAssociationLabelLimitResponseNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssociationLabelLimitResponse" + } + } + } + }, + "CollectionResponseObjectTypeNearOrAtAssociationLimitNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ObjectTypeNearOrAtAssociationLimit" + } + } + } + }, + "PublicPropertyAssociationFilterBranch": { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "propertyWithObjectId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicNumberPropertyOperation": { + "title": "NUMBER", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "value" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "NUMBER", + "enum": [ + "NUMBER" + ] + }, + "value": { + "type": "number" + }, + "operator": { + "type": "string" + } + } + }, + "PublicYearReference": { + "title": "YEAR", + "required": [ + "day", + "month", + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "month": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "YEAR", + "enum": [ + "YEAR" + ] + }, + "day": { + "type": "integer", + "format": "int32" + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicInListFilterMetadata": { + "required": [ + "id", + "inListType" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "inListType": { + "type": "string" + } + } + }, + "ListFolderFetchResponse": { + "required": [ + "folder" + ], + "type": "object", + "properties": { + "folder": { + "$ref": "#/components/schemas/PublicListFolder" + } + } + }, + "PublicRangedDatePropertyOperation": { + "title": "RANGED_DATE", + "required": [ + "includeObjectsWithNoValueSet", + "lowerBound", + "operationType", + "operator", + "requiresTimeZoneConversion", + "upperBound" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "upperBound": { + "type": "integer", + "format": "int32" + }, + "requiresTimeZoneConversion": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "RANGED_DATE", + "enum": [ + "RANGED_DATE" + ] + }, + "lowerBound": { + "type": "integer", + "format": "int32" + }, + "operator": { + "type": "string" + } + } + }, + "ListSearchRequest": { + "type": "object", + "properties": { + "listIds": { + "type": "array", + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.", + "items": { + "type": "string" + } + }, + "offset": { + "type": "integer", + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.", + "format": "int32" + }, + "query": { + "type": "string", + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists." + }, + "count": { + "type": "integer", + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.", + "format": "int32" + }, + "processingTypes": { + "type": "array", + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "array", + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.", + "items": { + "type": "string" + } + }, + "sort": { + "type": "string" + } + }, + "description": "The request object used for searching through lists.", + "example": { + "additionalProperties": [ + "hs_list_size_week_delta" + ], + "count": 100, + "offset": 0, + "query": "Test" + } + }, + "ListSearchResponse": { + "required": [ + "hasMore", + "lists", + "offset", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "The total number of lists that match the search criteria.", + "format": "int32" + }, + "offset": { + "type": "integer", + "description": "Value to be passed in a future request to paginate through list search results.", + "format": "int32" + }, + "lists": { + "type": "array", + "description": "The lists that matched the search criteria.", + "items": { + "$ref": "#/components/schemas/PublicObjectListSearchResult" + } + }, + "hasMore": { + "type": "boolean", + "description": "Whether or not there are more results to page through." + } + }, + "description": "The response object with the list search hits and additional information regarding pagination.", + "example": { + "hasMore": false, + "lists": [ + { + "additionalProperties": { + "hs_last_record_added_at": "1695938616824", + "hs_list_reference_count": "0", + "hs_list_size": "59", + "hs_list_size_week_delta": "-10" + }, + "createdAt": "2023-09-28T22:03:17.998Z", + "createdById": "1", + "filtersUpdatedAt": "2023-09-28T22:03:17.998Z", + "listId": "123", + "listVersion": 1, + "name": "Test list", + "objectTypeId": "0-1", + "processingStatus": "COMPLETE", + "processingType": "SNAPSHOT", + "updatedAt": "2023-09-28T22:03:37.005Z", + "updatedById": "1" + } + ], + "offset": 1, + "total": 1 + } + }, + "PublicInListFilter": { + "title": "IN_LIST", + "required": [ + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/PublicInListFilterMetadata" + }, + "filterType": { + "type": "string", + "default": "IN_LIST", + "enum": [ + "IN_LIST" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicSurveyMonkeyValueFilter": { + "title": "SURVEY_MONKEY_VALUE", + "required": [ + "filterType", + "operator", + "surveyId", + "surveyQuestion", + "valueComparison" + ], + "type": "object", + "properties": { + "valueComparison": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "surveyId": { + "type": "string" + }, + "surveyQuestion": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY_VALUE", + "enum": [ + "SURVEY_MONKEY_VALUE" + ] + }, + "surveyAnswerRowId": { + "type": "string" + }, + "surveyAnswerColId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicRelativeComparativeTimestampRefineBy": { + "title": "RELATIVE_COMPARATIVE", + "required": [ + "comparison", + "timeOffset", + "type" + ], + "type": "object", + "properties": { + "comparison": { + "type": "string" + }, + "timeOffset": { + "$ref": "#/components/schemas/PublicTimeOffset" + }, + "type": { + "type": "string", + "default": "RELATIVE_COMPARATIVE", + "enum": [ + "RELATIVE_COMPARATIVE" + ] + } + } + }, + "ListsByIdResponse": { + "required": [ + "lists" + ], + "type": "object", + "properties": { + "lists": { + "type": "array", + "description": "The object list definitions.", + "items": { + "$ref": "#/components/schemas/PublicObjectList" + } + } + }, + "description": "The response object containing the lists found for a multi-list fetch." + }, + "PublicCommunicationSubscriptionFilter": { + "title": "COMMUNICATION_SUBSCRIPTION", + "required": [ + "acceptedOptStates", + "channel", + "filterType", + "subscriptionIds", + "subscriptionType" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "acceptedOptStates": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "COMMUNICATION_SUBSCRIPTION", + "enum": [ + "COMMUNICATION_SUBSCRIPTION" + ] + }, + "businessUnitId": { + "type": "string" + } + } + }, + "PublicObjectListSearchResult": { + "required": [ + "additionalProperties", + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "processingType": { + "type": "string", + "description": "The processing type of the list." + }, + "objectTypeId": { + "type": "string", + "description": "The object type of the list." + }, + "updatedById": { + "type": "string", + "description": "The ID of the user that last updated the list." + }, + "filtersUpdatedAt": { + "type": "string", + "description": "The time when the filters for this list were last updated.", + "format": "date-time" + }, + "listId": { + "type": "string", + "description": "The **ILS ID** of the list." + }, + "createdAt": { + "type": "string", + "description": "The time when the list was created.", + "format": "date-time" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the list." + }, + "deletedAt": { + "type": "string", + "description": "The time when the list was deleted.", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "description": "The version of the list.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "The name of the list." + }, + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The name and value of any additional properties that exist for this list and that were included in the search request." + }, + "createdById": { + "type": "string", + "description": "The ID of the user that created the list." + }, + "updatedAt": { + "type": "string", + "description": "The time the list was last updated.", + "format": "date-time" + } + }, + "example": { + "additionalProperties": { + "hs_last_record_added_at": 1695938616824, + "hs_list_reference_count": 0, + "hs_list_size": 59, + "hs_list_size_week_delta": -1 + }, + "createdAt": "2023-09-28T22:03:17.998Z", + "createdById": "1", + "filtersUpdatedAt": "2023-09-28T22:03:17.998Z", + "listId": "123", + "listVersion": 1, + "name": "Test list", + "objectTypeId": "0-1", + "processingStatus": "COMPLETED", + "processingType": "SNAPSHOT", + "updatedById": "1" + } + }, + "PublicRelativeRangedTimestampRefineBy": { + "title": "RELATIVE_RANGED", + "required": [ + "lowerBoundOffset", + "rangeType", + "type", + "upperBoundOffset" + ], + "type": "object", + "properties": { + "upperBoundOffset": { + "$ref": "#/components/schemas/PublicTimeOffset" + }, + "rangeType": { + "type": "string" + }, + "lowerBoundOffset": { + "$ref": "#/components/schemas/PublicTimeOffset" + }, + "type": { + "type": "string", + "default": "RELATIVE_RANGED", + "enum": [ + "RELATIVE_RANGED" + ] + } + } + }, + "PublicIndexOffset": { + "type": "object", + "properties": { + "milliseconds": { + "type": "integer", + "format": "int32" + }, + "hours": { + "type": "integer", + "format": "int32" + }, + "seconds": { + "type": "integer", + "format": "int32" + }, + "months": { + "type": "integer", + "format": "int32" + }, + "weeks": { + "type": "integer", + "format": "int32" + }, + "minutes": { + "type": "integer", + "format": "int32" + }, + "quarters": { + "type": "integer", + "format": "int32" + }, + "days": { + "type": "integer", + "format": "int32" + }, + "years": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicNotAllFilterBranch": { + "title": "NOT_ALL", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ALL", + "enum": [ + "NOT_ALL" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + "PublicBatchMigrationMapping": { + "required": [ + "legacyListIdsToIdsMapping", + "missingLegacyListIds" + ], + "type": "object", + "properties": { + "legacyListIdsToIdsMapping": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicMigrationMapping" + } + }, + "missingLegacyListIds": { + "type": "array", + "description": "A list of legacy list ids that were passed in but not found. It will be empty if no id's are missing", + "items": { + "type": "string" + } + } + } + }, + "PublicFormSubmissionFilter": { + "title": "FORM_SUBMISSION", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION", + "enum": [ + "FORM_SUBMISSION" + ] + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + "PublicListConversionInactivity": { + "title": "INACTIVITY", + "required": [ + "conversionType", + "offset", + "timeUnit" + ], + "type": "object", + "properties": { + "offset": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "INACTIVITY", + "enum": [ + "INACTIVITY" + ] + }, + "timeUnit": { + "type": "string", + "enum": [ + "DAY", + "WEEK", + "MONTH" + ] + } + } + }, + "PublicRollingDateRangePropertyOperation": { + "title": "ROLLING_DATE_RANGE", + "required": [ + "includeObjectsWithNoValueSet", + "numberOfDays", + "operationType", + "operator", + "requiresTimeZoneConversion" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "requiresTimeZoneConversion": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "ROLLING_DATE_RANGE", + "enum": [ + "ROLLING_DATE_RANGE" + ] + }, + "numberOfDays": { + "type": "integer", + "format": "int32" + }, + "operator": { + "type": "string" + } + } + }, + "ApiCollectionResponseJoinTimeAndRecordId": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JoinTimeAndRecordId" + } + } + } + }, + "PublicListPermissions": { + "required": [ + "teamsWithEditAccess", + "usersWithEditAccess" + ], + "type": "object", + "properties": { + "teamsWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "usersWithEditAccess": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "PublicAssociationFilterBranch": { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "objectTypeId", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "objectTypeId": { + "type": "string" + }, + "filterBranchOperator": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string" + } + } + }, + "PublicQuarterReference": { + "title": "QUARTER", + "required": [ + "day", + "month", + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "month": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "QUARTER", + "enum": [ + "QUARTER" + ] + }, + "day": { + "type": "integer", + "format": "int32" + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicEmailSubscriptionFilter": { + "title": "EMAIL_SUBSCRIPTION", + "required": [ + "acceptedStatuses", + "filterType", + "subscriptionIds" + ], + "type": "object", + "properties": { + "subscriptionType": { + "type": "string" + }, + "subscriptionIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "filterType": { + "type": "string", + "default": "EMAIL_SUBSCRIPTION", + "enum": [ + "EMAIL_SUBSCRIPTION" + ] + }, + "acceptedStatuses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PublicEnumerationPropertyOperation": { + "title": "ENUMERATION", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "values" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "operationType": { + "type": "string", + "default": "ENUMERATION", + "enum": [ + "ENUMERATION" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicTimePointOperation": { + "title": "TIME_POINT", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "timePoint", + "type" + ], + "type": "object", + "properties": { + "endpointBehavior": { + "type": "string" + }, + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "propertyParser": { + "type": "string" + }, + "operationType": { + "type": "string", + "default": "TIME_POINT", + "enum": [ + "TIME_POINT" + ] + }, + "timePoint": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicDatePoint" + }, + { + "$ref": "#/components/schemas/PublicIndexedTimePoint" + }, + { + "$ref": "#/components/schemas/PublicPropertyReferencedTime" + } + ] + }, + "type": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "ListUpdateResponse": { + "type": "object", + "properties": { + "updatedList": { + "$ref": "#/components/schemas/PublicObjectList" + } + }, + "description": "The updated definition of the list in response to a list update request." + }, + "PublicAllHistoryRefineBy": { + "title": "ALL_HISTORY", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "ALL_HISTORY", + "enum": [ + "ALL_HISTORY" + ] + } + } + }, + "PublicNotAnyFilterBranch": { + "title": "NOT_ANY", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "NOT_ANY", + "enum": [ + "NOT_ANY" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + "PublicIndexedTimePoint": { + "title": "INDEXED", + "required": [ + "indexReference", + "timeType", + "zoneId" + ], + "type": "object", + "properties": { + "offset": { + "$ref": "#/components/schemas/PublicIndexOffset" + }, + "timezoneSource": { + "type": "string" + }, + "indexReference": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNowReference" + }, + { + "$ref": "#/components/schemas/PublicTodayReference" + }, + { + "$ref": "#/components/schemas/PublicWeekReference" + }, + { + "$ref": "#/components/schemas/PublicFiscalQuarterReference" + }, + { + "$ref": "#/components/schemas/PublicFiscalYearReference" + }, + { + "$ref": "#/components/schemas/PublicYearReference" + }, + { + "$ref": "#/components/schemas/PublicQuarterReference" + }, + { + "$ref": "#/components/schemas/PublicMonthReference" + } + ] + }, + "timeType": { + "type": "string", + "default": "INDEXED", + "enum": [ + "INDEXED" + ] + }, + "zoneId": { + "type": "string" + } + } + }, + "PublicRangedTimeOperation": { + "title": "TIME_RANGED", + "required": [ + "includeObjectsWithNoValueSet", + "lowerBoundTimePoint", + "operationType", + "operator", + "type", + "upperBoundTimePoint" + ], + "type": "object", + "properties": { + "upperBoundEndpointBehavior": { + "type": "string" + }, + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "upperBoundTimePoint": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicDatePoint" + }, + { + "$ref": "#/components/schemas/PublicIndexedTimePoint" + }, + { + "$ref": "#/components/schemas/PublicPropertyReferencedTime" + } + ] + }, + "propertyParser": { + "type": "string" + }, + "operationType": { + "type": "string" + }, + "type": { + "type": "string", + "default": "TIME_RANGED", + "enum": [ + "TIME_RANGED" + ] + }, + "lowerBoundEndpointBehavior": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "lowerBoundTimePoint": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicDatePoint" + }, + { + "$ref": "#/components/schemas/PublicIndexedTimePoint" + }, + { + "$ref": "#/components/schemas/PublicPropertyReferencedTime" + } + ] + } + } + }, + "PublicWebinarFilter": { + "title": "WEBINAR", + "required": [ + "filterType", + "operator" + ], + "type": "object", + "properties": { + "webinarId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "WEBINAR", + "enum": [ + "WEBINAR" + ] + }, + "operator": { + "type": "string" + } + } + }, + "ListCreateResponse": { + "required": [ + "list" + ], + "type": "object", + "properties": { + "list": { + "$ref": "#/components/schemas/PublicObjectList" + } + }, + "description": "The response for a list create request.", + "example": { + "list": { + "createdAt": "2023-11-15T18:16:52.165Z", + "createdById": "123", + "filterBranch": { + "filterBranchOperator": "OR", + "filterBranchType": "OR", + "filterBranches": [ + { + "filterBranchOperator": "AND", + "filterBranchType": "AND", + "filterBranches": [ + { + "associationCategory": "HUBSPOT_DEFINED", + "associationTypeId": 4, + "filterBranchOperator": "AND", + "filterBranchType": "ASSOCIATION", + "filters": [ + { + "filterType": "PROPERTY", + "operation": { + "includeObjectsWithNoValueSet": false, + "operationType": "BOOL", + "operator": "IS_EQUAL_TO", + "value": true + }, + "property": "hs_is_closed_won" + } + ], + "objectTypeId": "0-3", + "operator": "IN_LIST" + } + ], + "filters": [ + { + "filterType": "PROPERTY", + "operation": { + "includeObjectsWithNoValueSet": false, + "operationType": "MULTISTRING", + "operator": "IS_EQUAL_TO", + "values": [ + "test", + "name" + ] + }, + "property": "firstname" + } + ] + } + ] + }, + "filtersUpdatedAt": "2023-11-15T18:16:52.165Z", + "listId": "1", + "listVersion": 1, + "name": "Dynamic Association List Example", + "objectTypeId": "0-1", + "processingStatus": "PROCESSING", + "processingType": "DYNAMIC", + "updatedAt": "2023-11-15T18:16:52.395Z", + "updatedById": "123" + } + } + }, + "MembershipsUpdateResponse": { + "required": [ + "recordIdsMissing", + "recordIdsRemoved", + "recordsIdsAdded" + ], + "type": "object", + "properties": { + "recordIdsRemoved": { + "type": "array", + "description": "The IDs of the records that were `removed` from the list.", + "items": { + "type": "string" + } + }, + "recordsIdsAdded": { + "type": "array", + "items": { + "type": "string" + } + }, + "recordIdsMissing": { + "type": "array", + "description": "The IDs of the records that were `missing` (e.g. did not exist in the portal) and so were not `added` or `removed`.", + "items": { + "type": "string" + } + } + }, + "description": "The IDs of the records that were `added`, `removed`, and/or found to be `missing` as a result of the \nmembership update request." + }, + "PublicUnifiedEventsFilterBranch": { + "title": "UNIFIED_EVENTS", + "required": [ + "eventTypeId", + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters", + "operator" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "eventTypeId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + }, + "operator": { + "type": "string", + "enum": [ + "HAS_COMPLETED", + "HAS_NOT_COMPLETED" + ] + } + } + }, + "PublicNumOccurrencesRefineBy": { + "title": "NUM_OCCURRENCES", + "required": [ + "type" + ], + "type": "object", + "properties": { + "maxOccurrences": { + "type": "integer", + "format": "int32" + }, + "type": { + "type": "string", + "default": "NUM_OCCURRENCES", + "enum": [ + "NUM_OCCURRENCES" + ] + }, + "minOccurrences": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicObjectList": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "membershipSettings": { + "$ref": "#/components/schemas/PublicMembershipSettings" + }, + "processingType": { + "type": "string", + "description": "The processing type of the list." + }, + "objectTypeId": { + "type": "string", + "description": "The object type of the list." + }, + "updatedById": { + "type": "string", + "description": "The ID of the user that last updated the list." + }, + "filtersUpdatedAt": { + "type": "string", + "description": "The time when the filters for this list were last updated.", + "format": "date-time" + }, + "listId": { + "type": "string", + "description": "The **ILS ID** of the list." + }, + "createdAt": { + "type": "string", + "description": "The time when the list was created.", + "format": "date-time" + }, + "processingStatus": { + "type": "string", + "description": "The processing status of the list." + }, + "deletedAt": { + "type": "string", + "description": "The time when the list was deleted.", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "description": "The version of the list.", + "format": "int32" + }, + "size": { + "type": "integer", + "description": "Size of the list", + "format": "int64" + }, + "name": { + "type": "string", + "description": "The name of the list." + }, + "listPermissions": { + "$ref": "#/components/schemas/PublicListPermissions" + }, + "createdById": { + "type": "string", + "description": "The ID of the user that created the list." + }, + "filterBranch": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + }, + "updatedAt": { + "type": "string", + "description": "The time the list was last updated.", + "format": "date-time" + } + }, + "description": "An object list definition." + }, + "RecordListMembership": { + "required": [ + "firstAddedTimestamp", + "lastAddedTimestamp", + "listId", + "listVersion" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "listVersion": { + "type": "integer", + "format": "int32" + }, + "lastAddedTimestamp": { + "type": "string", + "format": "date-time" + }, + "isPublicList": { + "type": "boolean" + }, + "firstAddedTimestamp": { + "type": "string", + "format": "date-time" + } + }, + "description": "Lists record is member of", + "example": { + "firstAddedTimestamp": "2023-06-28T22:00:15.001Z", + "lastAddedTimestamp": "2023-09-28T22:03:17.998Z", + "listId": 13, + "listVersion": 2 + } + }, + "PublicCtaAnalyticsFilter": { + "title": "CTA", + "required": [ + "ctaName", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "CTA", + "enum": [ + "CTA" + ] + }, + "ctaName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "ListFetchResponse": { + "required": [ + "list" + ], + "type": "object", + "properties": { + "list": { + "$ref": "#/components/schemas/PublicObjectList" + } + }, + "description": "The response for a list fetch request." + }, + "PublicConstantFilter": { + "title": "CONSTANT", + "required": [ + "filterType", + "shouldAccept" + ], + "type": "object", + "properties": { + "shouldAccept": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CONSTANT", + "enum": [ + "CONSTANT" + ] + } + } + }, + "PublicSetOccurrencesRefineBy": { + "title": "SET_OCCURRENCES", + "required": [ + "setType", + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "SET_OCCURRENCES", + "enum": [ + "SET_OCCURRENCES" + ] + }, + "setType": { + "type": "string" + } + } + }, + "PublicListFolder": { + "required": [ + "childLists", + "childNodes", + "id", + "parentFolderId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The time the folder was created at.", + "format": "date-time" + }, + "parentFolderId": { + "type": "string", + "description": "The Id of the folder this folder is in, the root folder is represented as 0." + }, + "childNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicListFolder" + } + }, + "name": { + "type": "string", + "description": "The name of the folder." + }, + "id": { + "type": "string", + "description": "The Id of the folder." + }, + "childLists": { + "type": "array", + "description": "An array of list Id's contained in this folder.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "updatedContentsAt": { + "type": "string", + "description": "The time that the contents of the folder was last updated at.", + "format": "date-time" + }, + "userId": { + "type": "integer", + "description": "The user Id of the owner of the folder.", + "format": "int32" + }, + "updatedAt": { + "type": "string", + "description": "The time the folder was last updated at.", + "format": "date-time" + } + } + }, + "ApiCollectionResponseRecordListMembershipNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecordListMembership" + } + } + } + }, + "PublicComparativeDatePropertyOperation": { + "title": "COMPARATIVE_DATE", + "required": [ + "comparisonPropertyName", + "includeObjectsWithNoValueSet", + "operationType", + "operator" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "defaultComparisonValue": { + "type": "string" + }, + "operationType": { + "type": "string", + "default": "COMPARATIVE_DATE", + "enum": [ + "COMPARATIVE_DATE" + ] + }, + "comparisonPropertyName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicRangedNumberPropertyOperation": { + "title": "NUMBER_RANGED", + "required": [ + "includeObjectsWithNoValueSet", + "lowerBound", + "operationType", + "operator", + "upperBound" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "upperBound": { + "type": "integer", + "format": "int32" + }, + "operationType": { + "type": "string", + "default": "NUMBER_RANGED", + "enum": [ + "NUMBER_RANGED" + ] + }, + "lowerBound": { + "type": "integer", + "format": "int32" + }, + "operator": { + "type": "string" + } + } + }, + "PublicPageViewAnalyticsFilter": { + "title": "PAGE_VIEW", + "required": [ + "filterType", + "operator", + "pageUrl" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "enableTracking": { + "type": "boolean" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pageUrl": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PAGE_VIEW", + "enum": [ + "PAGE_VIEW" + ] + }, + "operator": { + "type": "string" + } + } + }, + "MembershipChangeRequest": { + "required": [ + "recordIdsToAdd", + "recordIdsToRemove" + ], + "type": "object", + "properties": { + "recordIdsToRemove": { + "type": "array", + "items": { + "type": "string" + } + }, + "recordIdsToAdd": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "The IDs of the records to add and/or remove from a list.", + "example": { + "recordIdsToAdd": [ + "123", + "456", + "789" + ], + "recordIdsToRemove": [ + "654" + ] + } + }, + "PublicComparativePropertyUpdatedOperation": { + "title": "COMPARATIVE_PROPERTY_UPDATED", + "required": [ + "comparisonPropertyName", + "includeObjectsWithNoValueSet", + "operationType", + "operator" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "defaultComparisonValue": { + "type": "string" + }, + "operationType": { + "type": "string", + "default": "COMPARATIVE_PROPERTY_UPDATED", + "enum": [ + "COMPARATIVE_PROPERTY_UPDATED" + ] + }, + "comparisonPropertyName": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicAndFilterBranch": { + "title": "AND", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "AND", + "enum": [ + "AND" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + "PublicIntegrationEventFilter": { + "title": "INTEGRATION_EVENT", + "required": [ + "eventTypeId", + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "eventTypeId": { + "type": "integer", + "format": "int32" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "filterType": { + "type": "string", + "default": "INTEGRATION_EVENT", + "enum": [ + "INTEGRATION_EVENT" + ] + } + } + }, + "PublicAbsoluteComparativeTimestampRefineBy": { + "title": "ABSOLUTE_COMPARATIVE", + "required": [ + "comparison", + "timestamp", + "type" + ], + "type": "object", + "properties": { + "comparison": { + "type": "string" + }, + "type": { + "type": "string", + "default": "ABSOLUTE_COMPARATIVE", + "enum": [ + "ABSOLUTE_COMPARATIVE" + ] + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + } + }, + "PublicSurveyMonkeyFilter": { + "title": "SURVEY_MONKEY", + "required": [ + "filterType", + "operator", + "surveyId" + ], + "type": "object", + "properties": { + "surveyId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "SURVEY_MONKEY", + "enum": [ + "SURVEY_MONKEY" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicAbsoluteRangedTimestampRefineBy": { + "title": "ABSOLUTE_RANGED", + "required": [ + "lowerTimestamp", + "rangeType", + "type", + "upperTimestamp" + ], + "type": "object", + "properties": { + "rangeType": { + "type": "string" + }, + "upperTimestamp": { + "type": "integer", + "format": "int64" + }, + "lowerTimestamp": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "string", + "default": "ABSOLUTE_RANGED", + "enum": [ + "ABSOLUTE_RANGED" + ] + } + } + }, + "PublicDatePropertyOperation": { + "title": "DATE", + "required": [ + "day", + "includeObjectsWithNoValueSet", + "month", + "operationType", + "operator", + "year" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "month": { + "type": "string" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "operationType": { + "type": "string", + "default": "DATE", + "enum": [ + "DATE" + ] + }, + "day": { + "type": "integer", + "format": "int32" + }, + "operator": { + "type": "string" + } + } + }, + "PublicEventAnalyticsFilter": { + "title": "EVENT", + "required": [ + "eventId", + "filterType", + "operator" + ], + "type": "object", + "properties": { + "eventId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "EVENT", + "enum": [ + "EVENT" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicUnifiedEventsFilter": { + "title": "UNIFIED_EVENTS", + "required": [ + "filterLines", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "eventTypeId": { + "type": "string" + }, + "filterLines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicEventFilterMetadata" + } + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "UNIFIED_EVENTS", + "enum": [ + "UNIFIED_EVENTS" + ] + } + } + }, + "PublicFiscalYearReference": { + "title": "FISCAL_YEAR", + "required": [ + "day", + "month", + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "month": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "FISCAL_YEAR", + "enum": [ + "FISCAL_YEAR" + ] + }, + "day": { + "type": "integer", + "format": "int32" + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicCalendarDatePropertyOperation": { + "title": "CALENDAR_DATE", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "timeUnit" + ], + "type": "object", + "properties": { + "useFiscalYear": { + "type": "boolean" + }, + "fiscalYearStart": { + "type": "string", + "enum": [ + "JANUARY", + "FEBRUARY", + "MARCH", + "APRIL", + "MAY", + "JUNE", + "JULY", + "AUGUST", + "SEPTEMBER", + "OCTOBER", + "NOVEMBER", + "DECEMBER" + ] + }, + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "CALENDAR_DATE", + "enum": [ + "CALENDAR_DATE" + ] + }, + "timeUnitCount": { + "type": "integer", + "format": "int32" + }, + "operator": { + "type": "string" + }, + "timeUnit": { + "type": "string" + } + } + }, + "PublicPropertyFilter": { + "title": "PROPERTY", + "required": [ + "filterType", + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY", + "enum": [ + "PROPERTY" + ] + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + "PublicNumAssociationsFilter": { + "title": "NUM_ASSOCIATIONS", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType" + ], + "type": "object", + "properties": { + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "NUM_ASSOCIATIONS", + "enum": [ + "NUM_ASSOCIATIONS" + ] + } + } + }, + "PublicAssociationInListFilter": { + "title": "ASSOCIATION", + "required": [ + "associationCategory", + "associationTypeId", + "coalescingRefineBy", + "filterType", + "listId", + "operator" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "toObjectType": { + "type": "string" + }, + "associationTypeId": { + "type": "integer", + "format": "int32" + }, + "associationCategory": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ASSOCIATION", + "enum": [ + "ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicEmailEventFilter": { + "title": "EMAIL_EVENT", + "required": [ + "appId", + "emailId", + "filterType", + "level", + "operator" + ], + "type": "object", + "properties": { + "clickUrl": { + "type": "string" + }, + "level": { + "type": "string" + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "appId": { + "type": "string" + }, + "emailId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "EMAIL_EVENT", + "enum": [ + "EMAIL_EVENT" + ] + }, + "operator": { + "type": "string", + "enum": [ + "LINK_CLICKED", + "MARKED_SPAM", + "OPENED", + "OPENED_BUT_LINK_NOT_CLICKED", + "OPENED_BUT_NOT_REPLIED", + "REPLIED", + "UNSUBSCRIBED", + "BOUNCED", + "RECEIVED", + "RECEIVED_BUT_NOT_OPENED", + "SENT", + "SENT_BUT_LINK_NOT_CLICKED", + "SENT_BUT_NOT_RECEIVED" + ] + } + } + }, + "PublicListConversionResponse": { + "required": [ + "listId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "requestedConversionTime": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicListConversionDate" + }, + { + "$ref": "#/components/schemas/PublicListConversionInactivity" + } + ] + }, + "convertedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "PublicOrFilterBranch": { + "title": "OR", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "OR", + "enum": [ + "OR" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + "PublicAdsTimeFilter": { + "title": "ADS_TIME", + "required": [ + "filterType", + "pruningRefineBy" + ], + "type": "object", + "properties": { + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "ADS_TIME", + "enum": [ + "ADS_TIME" + ] + } + } + }, + "PublicFormSubmissionOnPageFilter": { + "title": "FORM_SUBMISSION_ON_PAGE", + "required": [ + "filterType", + "operator", + "pageId" + ], + "type": "object", + "properties": { + "formId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "pruningRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "filterType": { + "type": "string", + "default": "FORM_SUBMISSION_ON_PAGE", + "enum": [ + "FORM_SUBMISSION_ON_PAGE" + ] + }, + "pageId": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "FILLED_OUT", + "NOT_FILLED_OUT" + ] + } + } + }, + "PublicMembershipSettings": { + "type": "object", + "properties": { + "membershipTeamId": { + "type": "integer", + "format": "int32" + }, + "includeUnassigned": { + "type": "boolean" + } + } + }, + "PublicPropertyAssociationInListFilter": { + "title": "PROPERTY_ASSOCIATION", + "required": [ + "coalescingRefineBy", + "filterType", + "listId", + "operator", + "propertyWithObjectId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string" + }, + "coalescingRefineBy": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicNumOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicSetOccurrencesRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicRelativeRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteComparativeTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAbsoluteRangedTimestampRefineBy" + }, + { + "$ref": "#/components/schemas/PublicAllHistoryRefineBy" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + }, + "propertyWithObjectId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PROPERTY_ASSOCIATION", + "enum": [ + "PROPERTY_ASSOCIATION" + ] + }, + "toObjectTypeId": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicStringPropertyOperation": { + "title": "STRING", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "value" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "STRING", + "enum": [ + "STRING" + ] + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string" + } + } + }, + "PublicPropertyReferencedTime": { + "title": "PROPERTY_REFERENCED", + "required": [ + "property", + "referenceType", + "timeType", + "zoneId" + ], + "type": "object", + "properties": { + "timezoneSource": { + "type": "string" + }, + "property": { + "type": "string" + }, + "timeType": { + "type": "string", + "default": "PROPERTY_REFERENCED", + "enum": [ + "PROPERTY_REFERENCED" + ] + }, + "zoneId": { + "type": "string" + }, + "referenceType": { + "type": "string" + } + } + }, + "PublicPrivacyAnalyticsFilter": { + "title": "PRIVACY", + "required": [ + "filterType", + "operator", + "privacyName" + ], + "type": "object", + "properties": { + "privacyName": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "PRIVACY", + "enum": [ + "PRIVACY" + ] + }, + "operator": { + "type": "string" + } + } + }, + "ListFilterUpdateRequest": { + "required": [ + "filterBranch" + ], + "type": "object", + "properties": { + "filterBranch": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "description": "The definition of the list filter branch update request.", + "example": { + "filterBranch": { + "filterBranchType": "OR", + "filterBranches": [ + { + "filterBranchType": "AND", + "filters": [ + { + "filterType": "PROPERTY", + "operation": { + "operationType": "NUMBER", + "operator": "IS_GREATER_THAN_OR_EQUAL_TO", + "value": 12 + }, + "property": "hs_predictivecontactscore_v2" + }, + { + "filterType": "PROPERTY", + "operation": { + "operationType": "ALL_PROPERTY", + "operator": "IS_UNKNOWN" + }, + "property": "engagements_last_meeting_booked_source" + }, + { + "acceptedStatuses": [ + "OPT_IN" + ], + "filterType": "EMAIL_SUBSCRIPTION", + "subscriptionIds": [ + "81537745", + "321981152" + ] + } + ] + } + ] + } + } + }, + "PublicMultiStringPropertyOperation": { + "title": "MULTISTRING", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "values" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "operationType": { + "type": "string", + "default": "MULTISTRING", + "enum": [ + "MULTISTRING" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicWeekReference": { + "title": "WEEK", + "required": [ + "dayOfWeek", + "referenceType" + ], + "type": "object", + "properties": { + "dayOfWeek": { + "type": "string", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "hour": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "WEEK", + "enum": [ + "WEEK" + ] + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicAdsSearchFilter": { + "title": "ADS_SEARCH", + "required": [ + "adNetwork", + "entityType", + "filterType", + "operator", + "searchTermType", + "searchTerms" + ], + "type": "object", + "properties": { + "searchTerms": { + "type": "array", + "items": { + "type": "string" + } + }, + "entityType": { + "type": "string" + }, + "adNetwork": { + "type": "string" + }, + "searchTermType": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "ADS_SEARCH", + "enum": [ + "ADS_SEARCH" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicTodayReference": { + "title": "TODAY", + "required": [ + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "TODAY", + "enum": [ + "TODAY" + ] + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicNowReference": { + "title": "NOW", + "required": [ + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "NOW", + "enum": [ + "NOW" + ] + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "ListFolderCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "parentFolderId": { + "type": "string", + "description": "The folder this should be created in, if not specified will be created in the root folder 0." + }, + "name": { + "type": "string", + "description": "The name of the folder to be created." + } + } + }, + "PublicListConversionDate": { + "title": "CONVERSION_DATE", + "required": [ + "conversionType", + "day", + "month", + "year" + ], + "type": "object", + "properties": { + "month": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "conversionType": { + "type": "string", + "default": "CONVERSION_DATE", + "enum": [ + "CONVERSION_DATE" + ] + }, + "day": { + "type": "integer", + "format": "int32" + } + } + }, + "JoinTimeAndRecordId": { + "required": [ + "membershipTimestamp", + "recordId" + ], + "type": "object", + "properties": { + "recordId": { + "type": "string" + }, + "membershipTimestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "PublicRestrictedFilterBranch": { + "title": "RESTRICTED", + "required": [ + "filterBranchOperator", + "filterBranchType", + "filterBranches", + "filters" + ], + "type": "object", + "properties": { + "filterBranchType": { + "type": "string", + "default": "RESTRICTED", + "enum": [ + "RESTRICTED" + ] + }, + "filterBranches": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "filterBranchOperator": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicPropertyFilter" + }, + { + "$ref": "#/components/schemas/PublicAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicPageViewAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicCtaAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicEventAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionFilter" + }, + { + "$ref": "#/components/schemas/PublicFormSubmissionOnPageFilter" + }, + { + "$ref": "#/components/schemas/PublicIntegrationEventFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCommunicationSubscriptionFilter" + }, + { + "$ref": "#/components/schemas/PublicCampaignInfluencedFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyFilter" + }, + { + "$ref": "#/components/schemas/PublicSurveyMonkeyValueFilter" + }, + { + "$ref": "#/components/schemas/PublicWebinarFilter" + }, + { + "$ref": "#/components/schemas/PublicEmailEventFilter" + }, + { + "$ref": "#/components/schemas/PublicPrivacyAnalyticsFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsSearchFilter" + }, + { + "$ref": "#/components/schemas/PublicAdsTimeFilter" + }, + { + "$ref": "#/components/schemas/PublicInListFilter" + }, + { + "$ref": "#/components/schemas/PublicNumAssociationsFilter" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilter" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationInListFilter" + }, + { + "$ref": "#/components/schemas/PublicConstantFilter" + } + ] + } + } + } + }, + "PublicMonthReference": { + "title": "MONTH", + "required": [ + "day", + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "MONTH", + "enum": [ + "MONTH" + ] + }, + "day": { + "type": "integer", + "format": "int32" + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicDateTimePropertyOperation": { + "title": "DATETIME", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "requiresTimeZoneConversion", + "timestamp" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "requiresTimeZoneConversion": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "DATETIME", + "enum": [ + "DATETIME" + ] + }, + "operator": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicCampaignInfluencedFilter": { + "title": "CAMPAIGN_INFLUENCED", + "required": [ + "campaignId", + "filterType" + ], + "type": "object", + "properties": { + "campaignId": { + "type": "string" + }, + "filterType": { + "type": "string", + "default": "CAMPAIGN_INFLUENCED", + "enum": [ + "CAMPAIGN_INFLUENCED" + ] + } + } + }, + "ListMoveRequest": { + "required": [ + "listId", + "newFolderId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string", + "description": "The Id of the list to move." + }, + "newFolderId": { + "type": "string", + "description": "The Id of folder to move the list to, the root folder is Id 0." + } + } + }, + "PublicFiscalQuarterReference": { + "title": "FISCAL_QUARTER", + "required": [ + "day", + "month", + "referenceType" + ], + "type": "object", + "properties": { + "hour": { + "type": "integer", + "format": "int32" + }, + "month": { + "type": "integer", + "format": "int32" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "referenceType": { + "type": "string", + "default": "FISCAL_QUARTER", + "enum": [ + "FISCAL_QUARTER" + ] + }, + "day": { + "type": "integer", + "format": "int32" + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicMigrationMapping": { + "required": [ + "legacyListId", + "listId" + ], + "type": "object", + "properties": { + "listId": { + "type": "string", + "description": "The V3 list id for the list" + }, + "legacyListId": { + "type": "string", + "description": "The legacy list id for the list" + } + } + }, + "ListCreateRequest": { + "required": [ + "name", + "objectTypeId", + "processingType" + ], + "type": "object", + "properties": { + "membershipSettings": { + "$ref": "#/components/schemas/PublicMembershipSettings" + }, + "objectTypeId": { + "type": "string", + "description": "The object type ID of the type of objects that the list will store." + }, + "processingType": { + "type": "string", + "description": "The processing type of the list. One of: `SNAPSHOT`, `MANUAL`, or `DYNAMIC`." + }, + "customProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The list of custom properties to tie to the list. Custom property name is the key, the value is the value." + }, + "listFolderId": { + "type": "integer", + "description": "The ID of the folder that the list should be created in. If left blank, then the list will be created in the root of the list folder structure.", + "format": "int32" + }, + "name": { + "type": "string", + "description": "The name of the list, which must be globally unique across all public lists in the portal." + }, + "listPermissions": { + "$ref": "#/components/schemas/PublicListPermissions" + }, + "filterBranch": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicOrFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAndFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAllFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicNotAnyFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicRestrictedFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicUnifiedEventsFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicPropertyAssociationFilterBranch" + }, + { + "$ref": "#/components/schemas/PublicAssociationFilterBranch" + } + ] + } + }, + "description": "The request object used when creating a new object list.", + "example": { + "filterBranch": { + "filterBranchType": "OR", + "filterBranches": [ + { + "filterBranchType": "AND", + "filterBranches": [ + { + "associationCategory": "HUBSPOT_DEFINED", + "associationTypeId": 4, + "filterBranchType": "ASSOCIATION", + "filters": [ + { + "filterType": "PROPERTY", + "operation": { + "operationType": "BOOL", + "operator": "IS_EQUAL_TO", + "value": true + }, + "property": "hs_is_closed_won" + } + ], + "objectTypeId": "0-3", + "operator": "IN_LIST" + } + ], + "filters": [ + { + "filterType": "PROPERTY", + "operation": { + "operationType": "MULTISTRING", + "operator": "IS_EQUAL_TO", + "values": [ + "test", + "name" + ] + }, + "property": "firstname" + } + ] + } + ] + }, + "name": "Dynamic Association List Example", + "objectTypeId": "0-1", + "processingType": "DYNAMIC" + } + }, + "PublicBoolPropertyOperation": { + "title": "BOOL", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator", + "value" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "BOOL", + "enum": [ + "BOOL" + ] + }, + "value": { + "type": "boolean" + }, + "operator": { + "type": "string" + } + } + }, + "PublicAllPropertyTypesOperation": { + "title": "ALL_PROPERTY", + "required": [ + "includeObjectsWithNoValueSet", + "operationType", + "operator" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "ALL_PROPERTY", + "enum": [ + "ALL_PROPERTY" + ] + }, + "operator": { + "type": "string" + } + } + }, + "PublicEventFilterMetadata": { + "required": [ + "operation", + "property" + ], + "type": "object", + "properties": { + "property": { + "type": "string" + }, + "operation": { + "oneOf": [ + { + "$ref": "#/components/schemas/PublicBoolPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDateTimePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativePropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicComparativeDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingDateRangePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicRollingPropertyUpdatedOperation" + }, + { + "$ref": "#/components/schemas/PublicEnumerationPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicAllPropertyTypesOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedNumberPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicMultiStringPropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicCalendarDatePropertyOperation" + }, + { + "$ref": "#/components/schemas/PublicTimePointOperation" + }, + { + "$ref": "#/components/schemas/PublicRangedTimeOperation" + } + ] + } + } + }, + "PublicDatePoint": { + "title": "DATE", + "required": [ + "day", + "month", + "timeType", + "year", + "zoneId" + ], + "type": "object", + "properties": { + "month": { + "type": "integer", + "format": "int32" + }, + "hour": { + "type": "integer", + "format": "int32" + }, + "year": { + "type": "integer", + "format": "int32" + }, + "timezoneSource": { + "type": "string" + }, + "millisecond": { + "type": "integer", + "format": "int32" + }, + "timeType": { + "type": "string", + "default": "DATE", + "enum": [ + "DATE" + ] + }, + "zoneId": { + "type": "string" + }, + "day": { + "type": "integer", + "format": "int32" + }, + "minute": { + "type": "integer", + "format": "int32" + }, + "second": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicListConversionTime": { + "properties": {}, + "oneOf": [ + { + "$ref": "#/components/schemas/PublicListConversionDate" + }, + { + "$ref": "#/components/schemas/PublicListConversionInactivity" + } + ] + }, + "PublicTimeOffset": { + "required": [ + "amount", + "offsetDirection", + "timeUnit" + ], + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int64" + }, + "offsetDirection": { + "type": "string" + }, + "timeUnit": { + "type": "string" + } + } + }, + "NextPage4": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A direct link to the request for the next page of records.", + "example": "" + }, + "after": { + "type": "string", + "description": "The offset for the next page of records.", + "example": "" + } + }, + "description": "The cursor for the next page of records." + }, + "PublicRollingPropertyUpdatedOperation": { + "title": "ROLLING_PROPERTY_UPDATED", + "required": [ + "includeObjectsWithNoValueSet", + "numberOfDays", + "operationType", + "operator" + ], + "type": "object", + "properties": { + "includeObjectsWithNoValueSet": { + "type": "boolean" + }, + "operationType": { + "type": "string", + "default": "ROLLING_PROPERTY_UPDATED", + "enum": [ + "ROLLING_PROPERTY_UPDATED" + ] + }, + "numberOfDays": { + "type": "integer", + "format": "int32" + }, + "operator": { + "type": "string" + } + } + }, + "ObjectTypeEnablementPublicResponse": { + "required": [ + "enablement" + ], + "type": "object", + "properties": { + "enablement": { + "type": "boolean" + } + } + }, + "PortalObjectTypeEnablementPublicResponse": { + "required": [ + "enablementByObjectTypeId" + ], + "type": "object", + "properties": { + "enablementByObjectTypeId": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "SimplePublicObjectWithAssociations4": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CollectionResponseAssociatedId" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "properties": { + "createdate": "2019-10-30T03:30:17.883Z", + "hs_initial_amount": "50.00", + "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z", + "hs_latest_status": "succeeded" + } + } + }, + "SimplePublicObject5": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "example": false + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id": { + "type": "string", + "example": "512" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "example": { + "property_date": "1572480000000", + "property_radio": "option_1", + "property_number": "17", + "property_string": "value", + "property_checkbox": "false", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "example": { + "id": "512", + "properties": { + "createdate": "2019-10-30T03:30:17.883Z", + "hs_initial_amount": "50.00", + "hs_lastmodifieddate": "2019-12-07T16:50:06.678Z", + "hs_latest_status": "succeeded" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false + } + }, + "PipelineStagePatchInput": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to update some properties on a pipeline definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + }, + "PipelinePatchInput": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "description": "An input used to update some properties on a pipeline definition.", + "example": { + "label": "My updated pipeline", + "displayOrder": 0 + } + }, + "PipelineStage": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline stage was created. The stages on default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "writePermissions": { + "type": "string", + "description": "Defines the level of write access for the pipeline stage, with possible values being CRM_PERMISSIONS_ENFORCEMENT, READ_ONLY, or INTERNAL_ONLY.", + "enum": [ + "CRM_PERMISSIONS_ENFORCEMENT", + "READ_ONLY", + "INTERNAL_ONLY" + ] + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline stage." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline stage was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline stage definition.", + "example": { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + } + }, + "CollectionResponsePipelineStageNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineStage" + } + } + } + }, + "PipelineStageInput": { + "required": [ + "displayOrder", + "label" + ], + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "An input used to create or replace a pipeline stage's definition.", + "example": { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + }, + "PublicAuditInfo": { + "required": [ + "action", + "identifier", + "portalId" + ], + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "A unique string identifier for the audit event." + }, + "rawObject": { + "type": "object", + "properties": {}, + "description": "An object containing the raw data associated with the audit event." + }, + "fromUserId": { + "type": "integer", + "description": "The ID of the user who initiated the audit event.", + "format": "int32" + }, + "portalId": { + "type": "integer", + "description": "The unique identifier for the HubSpot portal where the audit event occurred.", + "format": "int32" + }, + "action": { + "type": "string", + "description": "The action performed that triggered the audit event." + }, + "message": { + "type": "string", + "description": "A descriptive message related to the audit event." + }, + "timestamp": { + "type": "string", + "description": "The date and time when the audit event took place.", + "format": "date-time" + } + } + }, + "CollectionResponsePipelineNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Pipeline" + } + } + } + }, + "PipelineInput": { + "required": [ + "displayOrder", + "label", + "stages" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "Pipeline stage inputs used to create the new or replacement pipeline.", + "items": { + "$ref": "#/components/schemas/PipelineStageInput" + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "description": "An input used to create or replace a pipeline's definition.", + "example": { + "label": "My replaced pipeline", + "displayOrder": 0, + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + } + }, + { + "label": "Done", + "displayOrder": 1, + "metadata": { + "ticketState": "CLOSED" + } + } + ] + } + }, + "CollectionResponsePublicAuditInfoNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAuditInfo" + } + } + } + }, + "Pipeline": { + "required": [ + "archived", + "createdAt", + "displayOrder", + "id", + "label", + "stages", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date the pipeline was created. The default pipelines will have createdAt = 0.", + "format": "date-time" + }, + "archivedAt": { + "type": "string", + "description": "The date the pipeline was archived. `archivedAt` will only be present if the pipeline is archived.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the pipeline is archived." + }, + "displayOrder": { + "type": "integer", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "format": "int32" + }, + "stages": { + "type": "array", + "description": "The stages associated with the pipeline. They can be retrieved and updated via the pipeline stages endpoints.", + "items": { + "$ref": "#/components/schemas/PipelineStage" + } + }, + "label": { + "type": "string", + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "id": { + "type": "string", + "description": "A unique identifier generated by HubSpot that can be used to retrieve and update the pipeline." + }, + "updatedAt": { + "type": "string", + "description": "The date the pipeline was last updated.", + "format": "date-time" + } + }, + "description": "A pipeline definition.", + "example": { + "label": "My ticket pipeline", + "displayOrder": 0, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "812723471", + "stages": [ + { + "label": "In Progress", + "displayOrder": 0, + "metadata": { + "ticketState": "OPEN" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234912" + }, + { + "label": "Done", + "displayOrder": 0, + "metadata": { + "ticketState": "CLOSED" + }, + "createdAt": "2019-10-30T03:30:17.883Z", + "updatedAt": "2019-12-07T16:50:06.678Z", + "archived": false, + "id": "1234914" + } + ] + } + }, + "SimplePublicObject6": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string", + "description": "An identifier used to trace the creation or update request of the CRM object." + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key-value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "A simple public object.", + "example": { + "archived": false, + "createdAt": "2019-10-30T03:30:17.883Z", + "id": "512", + "properties": { + "property_checkbox": "false", + "property_date": "1572480000000", + "property_dropdown": "choice_b", + "property_multiple_checkboxes": "chocolate;strawberry", + "property_number": "17", + "property_radio": "option_1", + "property_string": "value" + }, + "updatedAt": "2019-12-07T16:50:06.678Z" + } + }, + "SimplePublicObjectWithAssociations5": { + "required": [ + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CollectionResponseAssociatedId" + }, + "description": "A list defining relationships with other objects." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object along with its properties, timestamps, and a set of associated object IDs grouped by association type." + }, + "SimplePublicUpsertObject4": { + "required": [ + "createdAt", + "id", + "new", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The timestamp when the object was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether the object is archived." + }, + "archivedAt": { + "type": "string", + "description": "The timestamp when the object was archived, in ISO 8601 format.", + "format": "date-time" + }, + "new": { + "type": "boolean", + "description": "Whether the property is new." + }, + "propertiesWithHistory": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValueWithTimestamp" + } + }, + "description": "Key-value pairs representing the properties of the object along with their history." + }, + "id": { + "type": "string", + "description": "The unique ID of the object." + }, + "objectWriteTraceId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key value pairs representing the properties of the object." + }, + "url": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the object was last updated, in ISO 8601 format.", + "format": "date-time" + } + }, + "description": "Represents a CRM object that has either been created or updated (upserted)" + }, + "CreatedResponsePropertyGroup": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "$ref": "#/components/schemas/PropertyGroup" + } + } + }, + "PropertyName": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the property to read or modify." + } + }, + "example": { + "name": "my_custom_property" + } + }, + "BatchResponseProperty": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Property" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "CollectionResponseProperty": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Property" + } + }, + "paging": { + "$ref": "#/components/schemas/Paging" + } + } + }, + "PropertyGroup": { + "required": [ + "archived", + "displayOrder", + "label", + "name" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "description": "An ID for a group of properties", + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + }, + "PropertyCreate": { + "required": [ + "fieldType", + "groupName", + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties.", + "items": { + "$ref": "#/components/schemas/OptionInput" + } + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "externalOptions": { + "type": "boolean", + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + }, + "OptionInput": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + }, + "BatchInputPropertyCreate": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyCreate" + } + } + } + }, + "PropertyUpdate": { + "type": "object", + "properties": { + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "hidden": { + "type": "boolean", + "description": "If true, the property won't be visible and can't be used in HubSpot." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property.", + "items": { + "$ref": "#/components/schemas/OptionInput" + } + }, + "displayOrder": { + "type": "integer", + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ] + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot.", + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + } + }, + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hidden": false, + "label": "My Contact Property", + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + }, + "BatchReadInputPropertyName": { + "required": [ + "archived", + "inputs" + ], + "type": "object", + "properties": { + "archived": { + "type": "boolean" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyName" + } + }, + "dataSensitivity": { + "type": "string", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + } + } + }, + "PropertyGroupCreate": { + "required": [ + "label", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "example": { + "displayOrder": -1, + "label": "My Property Group", + "name": "mypropertygroup" + } + }, + "PropertyModificationMetadata": { + "required": [ + "archivable", + "readOnlyDefinition", + "readOnlyValue" + ], + "type": "object", + "properties": { + "readOnlyOptions": { + "type": "boolean" + }, + "readOnlyValue": { + "type": "boolean" + }, + "readOnlyDefinition": { + "type": "boolean" + }, + "archivable": { + "type": "boolean" + } + } + }, + "BatchInputPropertyName": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyName" + } + } + } + }, + "Option": { + "required": [ + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Options are displayed in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A HubSpot property option", + "example": { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + } + }, + "CollectionResponsePropertyGroup": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroup" + } + }, + "paging": { + "$ref": "#/components/schemas/Paging" + } + } + }, + "PropertyGroupUpdate": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "format": "int32" + }, + "label": { + "type": "string", + "description": "A human-readable label that will be shown in HubSpot." + } + }, + "example": { + "displayOrder": -1, + "label": "My Property Group" + } + }, + "Property": { + "required": [ + "description", + "fieldType", + "groupName", + "label", + "name", + "options", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "type": "integer", + "description": "Properties are shown in order, starting with the lowest positive integer value.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether or not the property will display the currency symbol set in the account settings." + }, + "type": { + "type": "string", + "description": "The property data type." + }, + "hubspotDefined": { + "type": "boolean", + "description": "This will be true for default object properties built into HubSpot." + }, + "createdAt": { + "type": "string", + "description": "The timestamp when the property was created, in ISO 8601 format.", + "format": "date-time" + }, + "archived": { + "type": "boolean", + "description": "Whether or not the property is archived." + }, + "options": { + "type": "array", + "description": "A list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.", + "items": { + "$ref": "#/components/schemas/Option" + } + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "calculated": { + "type": "boolean", + "description": "For default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties." + }, + "externalOptions": { + "type": "boolean", + "description": "For default properties, true indicates that the options are stored externally to the property settings." + }, + "dateDisplayHint": { + "type": "string", + "enum": [ + "absolute", + "absolute_with_relative", + "time_since", + "time_until" + ] + }, + "updatedAt": { + "type": "string", + "description": "The timestamp when the property was last updated, in ISO 8601 format.", + "format": "date-time" + }, + "createdUserId": { + "type": "string", + "description": "The internal user ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot." + }, + "modificationMetadata": { + "$ref": "#/components/schemas/PropertyModificationMetadata" + }, + "sensitiveDataCategories": { + "type": "array", + "description": "When sensitiveData is true, lists the type of sensitive data contained in the property (e.g., \"HIPAA\").", + "items": { + "type": "string" + } + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "formField": { + "type": "boolean", + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "type": "string", + "description": "Indicates the sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", or \"highly_sensitive\".", + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ] + }, + "archivedAt": { + "type": "string", + "description": "When the property was archived.", + "format": "date-time" + }, + "groupName": { + "type": "string", + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "If this property is related to other object(s), they'll be listed here." + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "calculationFormula": { + "type": "string", + "description": "Represents a formula that is used to compute a calculated property." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + }, + "updatedUserId": { + "type": "string", + "description": "The internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot." + } + }, + "description": "A HubSpot property", + "example": { + "displayOrder": 2, + "fieldType": "select", + "formField": true, + "groupName": "contactinformation", + "hasUniqueValue": false, + "hidden": false, + "label": "My Contact Property", + "modificationMetadata": { + "archivable": true, + "readOnlyDefinition": false, + "readOnlyOptions": false, + "readOnlyValue": false + }, + "name": "my_contact_property", + "options": [ + { + "description": "Choice number one", + "displayOrder": 1, + "hidden": false, + "label": "Option A", + "value": "A" + }, + { + "description": "Choice number two", + "displayOrder": 2, + "hidden": false, + "label": "Option B", + "value": "B" + } + ], + "type": "enumeration" + } + }, + "CreatedResponseProperty": { + "required": [ + "createdResourceId", + "entity" + ], + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "createdResourceId": { + "type": "string" + }, + "entity": { + "$ref": "#/components/schemas/Property" + } + } + }, + "PublicPropertyValidationRuleMap": { + "required": [ + "propertyName", + "propertyValidationRules" + ], + "type": "object", + "properties": { + "propertyName": { + "type": "string" + }, + "propertyValidationRules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicPropertyValidationRule" + } + } + } + }, + "CollectionResponsePublicPropertyValidationRuleNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicPropertyValidationRule" + } + } + } + }, + "CollectionResponsePublicPropertyValidationRuleMapNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicPropertyValidationRuleMap" + } + } + } + }, + "PublicPropertyValidationRule": { + "required": [ + "ruleArguments", + "ruleType" + ], + "type": "object", + "properties": { + "ruleType": { + "type": "string" + }, + "ruleArguments": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ObjectTypeDefinitionPatch": { + "type": "object", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "clearDescription": { + "type": "boolean" + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "description": { + "type": "string" + }, + "restorable": { + "type": "boolean" + }, + "labels": { + "$ref": "#/components/schemas/ObjectTypeDefinitionLabels" + } + }, + "description": "Defines attributes to update on an object type.", + "example": { + "primaryDisplayProperty": "my_object_property", + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ] + } + }, + "CollectionResponseObjectSchemaNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ObjectSchema" + } + } + } + }, + "ObjectTypeDefinition2": { + "required": [ + "id", + "labels", + "name", + "requiredProperties" + ], + "type": "object", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "objectTypeId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fullyQualifiedName": { + "type": "string" + }, + "labels": { + "$ref": "#/components/schemas/ObjectTypeDefinitionLabels" + }, + "archived": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "description": "When the object type was created.", + "format": "date-time" + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "portalId": { + "type": "integer", + "description": "The ID of the account that this object type is specific to.", + "format": "int32" + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for this object. For internal use only." + }, + "id": { + "type": "string", + "description": "A unique ID for this object type. Will be defined as {meta-type}-{unique ID}." + }, + "updatedAt": { + "type": "string", + "description": "When the object type was last updated.", + "format": "date-time" + } + }, + "description": "Defines an object type.", + "example": { + "id": "123456", + "createdAt": "2020-02-20T18:07:11.390Z", + "updatedAt": "2020-02-21T14:13:28.818002Z", + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ], + "primaryDisplayProperty": "my_object_property", + "portalId": 12345678, + "metaType": "PORTAL_SPECIFIC", + "name": "my_object" + } + }, + "OptionInput2": { + "required": [ + "displayOrder", + "hidden", + "label", + "value" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean", + "description": "Hidden options won't be shown in HubSpot." + }, + "displayOrder": { + "type": "integer", + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the option." + }, + "label": { + "type": "string", + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "type": "string", + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "Defines a enumeration property option", + "example": { + "label": "Option A", + "description": "Choice number one", + "value": "A", + "displayOrder": 1, + "hidden": false + } + }, + "ObjectTypePropertyCreate": { + "required": [ + "fieldType", + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "hidden": { + "type": "boolean" + }, + "optionSortStrategy": { + "type": "string", + "description": "Controls how the property options will be sorted in the HubSpot UI.", + "enum": [ + "DISPLAY_ORDER", + "ALPHABETICAL" + ] + }, + "displayOrder": { + "type": "integer", + "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.", + "format": "int32" + }, + "description": { + "type": "string", + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "type": "boolean", + "description": "Whether the property will display the currency symbol in the HubSpot UI." + }, + "label": { + "type": "string", + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "type": "string", + "description": "The data type of the property.", + "enum": [ + "string", + "number", + "date", + "datetime", + "enumeration", + "bool" + ] + }, + "formField": { + "type": "boolean", + "description": "Whether the property can be used in a HubSpot form." + }, + "groupName": { + "type": "string", + "description": "The name of the group this property belongs to." + }, + "referencedObjectType": { + "type": "string", + "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal." + }, + "textDisplayHint": { + "type": "string", + "description": "Controls how text properties are formatted in the HubSpot UI", + "enum": [ + "unformatted_single_line", + "multi_line", + "email", + "phone_number", + "domain_name", + "ip_address", + "physical_address", + "postal_code" + ] + }, + "name": { + "type": "string", + "description": "The internal property name, which must be used when referencing the property from the API." + }, + "options": { + "type": "array", + "description": "A list of available options for the property. This field is only required for enumerated properties.", + "items": { + "$ref": "#/components/schemas/OptionInput" + } + }, + "searchableInGlobalSearch": { + "type": "boolean", + "description": "Allow users to search for information entered to this field (limited to 3 properties)" + }, + "numberDisplayHint": { + "type": "string", + "description": "Controls how numeric properties are formatted in the HubSpot UI", + "enum": [ + "unformatted", + "formatted", + "currency", + "percentage", + "duration", + "probability" + ] + }, + "hasUniqueValue": { + "type": "boolean", + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "type": "string", + "description": "Controls how the property appears in HubSpot." + } + }, + "description": "Defines a property to create.", + "example": { + "label": "My object property", + "type": "enumeration", + "fieldType": "select", + "groupName": "my_object_information", + "displayOrder": 2, + "hasUniqueValue": false, + "options": [ + { + "label": "Option A", + "description": "Choice number one", + "value": "A", + "displayOrder": 1 + }, + { + "label": "Option B", + "description": "Choice number two", + "value": "B", + "displayOrder": 2 + } + ] + } + }, + "AssociationDefinitionEgg": { + "required": [ + "fromObjectTypeId", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from." + }, + "name": { + "type": "string", + "description": "A unique name for this association." + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to." + } + }, + "description": "Defines an association between two object types.", + "example": { + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "contact", + "name": "my_object_to_contact" + } + }, + "AssociationDefinition": { + "required": [ + "fromObjectTypeId", + "id", + "toObjectTypeId" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "When the association was defined.", + "format": "date-time" + }, + "fromObjectTypeId": { + "type": "string", + "description": "ID of the primary object type to link from.", + "example": "" + }, + "name": { + "type": "string", + "description": "A unique name for this association.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for this association.", + "example": "" + }, + "toObjectTypeId": { + "type": "string", + "description": "ID of the target object type to link to.", + "example": "" + }, + "updatedAt": { + "type": "string", + "description": "When the association was last updated.", + "format": "date-time" + } + }, + "description": "Defines an association between two object types.", + "example": { + "id": "105", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + }, + "ObjectSchema": { + "required": [ + "associations", + "id", + "labels", + "name", + "properties", + "requiredProperties" + ], + "type": "object", + "properties": { + "associations": { + "type": "array", + "description": "Associations defined for a given object type.", + "items": { + "$ref": "#/components/schemas/AssociationDefinition" + } + }, + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "createdByUserId": { + "type": "integer", + "format": "int32" + }, + "objectTypeId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "updatedByUserId": { + "type": "integer", + "format": "int32" + }, + "fullyQualifiedName": { + "type": "string", + "description": "An assigned unique ID for the object, including portal ID and object name." + }, + "labels": { + "$ref": "#/components/schemas/ObjectTypeDefinitionLabels" + }, + "archived": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "description": "When the object schema was created.", + "format": "date-time" + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for the schema's object type." + }, + "id": { + "type": "string", + "description": "A unique ID for this schema's object type. Will be defined as {meta-type}-{unique ID}." + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "$ref": "#/components/schemas/Property" + } + }, + "updatedAt": { + "type": "string", + "description": "When the object schema was last updated.", + "format": "date-time" + } + }, + "description": "Defines an object schema, including its properties and associations.", + "example": { + "id": "123456", + "createdAt": "2020-02-20T18:07:11.390Z", + "updatedAt": "2020-02-20T18:09:07.555Z", + "properties": [ + { + "updatedAt": "2020-02-20T18:07:11.802Z", + "createdAt": "2020-02-20T18:07:11.802Z", + "name": "my_object_property", + "label": "My object property", + "type": "string", + "fieldType": "text", + "groupName": "my_object_information", + "displayOrder": -1, + "calculated": false, + "externalOptions": false, + "archived": false, + "hasUniqueValue": false + } + ], + "associations": [ + { + "id": "123", + "fromObjectTypeId": "2-123456", + "toObjectTypeId": "0-1", + "name": "my_object_to_contact" + } + ], + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "requiredProperties": [ + "my_object_property" + ], + "searchableProperties": [ + "my_object_property" + ], + "primaryDisplayProperty": "my_object_property", + "metaType": "PORTAL_SPECIFIC", + "fullyQualifiedName": "p7878787_my_object\"", + "name": "my_object" + } + }, + "ObjectSchemaEgg": { + "required": [ + "associatedObjects", + "labels", + "name", + "properties", + "requiredProperties" + ], + "type": "object", + "properties": { + "secondaryDisplayProperties": { + "type": "array", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "items": { + "type": "string" + } + }, + "requiredProperties": { + "type": "array", + "description": "The names of properties that should be **required** when creating an object of this type.", + "items": { + "type": "string" + } + }, + "searchableProperties": { + "type": "array", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "items": { + "type": "string" + } + }, + "primaryDisplayProperty": { + "type": "string", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "type": "string", + "description": "A unique name for this object. For internal use only." + }, + "description": { + "type": "string" + }, + "associatedObjects": { + "type": "array", + "description": "Associations defined for this object type.", + "items": { + "type": "string" + } + }, + "properties": { + "type": "array", + "description": "Properties defined for this object type.", + "items": { + "$ref": "#/components/schemas/ObjectTypePropertyCreate" + } + }, + "labels": { + "$ref": "#/components/schemas/ObjectTypeDefinitionLabels" + } + }, + "description": "Defines a new object type, its properties, and associations.", + "example": { + "name": "my_object", + "labels": { + "singular": "My object", + "plural": "My objects" + }, + "primaryDisplayProperty": "my_object_property", + "requiredProperties": [ + "my_object_property" + ], + "properties": [ + { + "name": "my_object_property", + "label": "My object property", + "isPrimaryDisplayLabel": true + } + ], + "associatedObjects": [ + "CONTACT" + ], + "metaType": "PORTAL_SPECIFIC" + } + }, + "ObjectTypeDefinitionLabels": { + "type": "object", + "properties": { + "plural": { + "type": "string", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "type": "string", + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "description": "Singular and plural labels for the object. Used in CRM display.", + "example": { + "singular": "My object", + "plural": "My objects" + } + }, + "TimelineEvent": { + "required": [ + "eventTemplateId", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "$ref": "#/components/schemas/TimelineEventIFrame" + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + } + }, + "description": "The state of the timeline event.", + "example": { + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "tokens": { + "petName": "Art3mis", + "petAge": 3, + "petColor": "black" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + }, + "TimelineEventIFrame": { + "required": [ + "headerLabel", + "height", + "linkLabel", + "url", + "width" + ], + "type": "object", + "properties": { + "linkLabel": { + "type": "string", + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "type": "string", + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "type": "integer", + "description": "The width of the modal window in pixels.", + "format": "int32" + }, + "url": { + "type": "string", + "description": "The URI of the iframe contents." + }, + "height": { + "type": "integer", + "description": "The height of the modal window in pixels.", + "format": "int32" + } + }, + "example": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + "EventDetail": { + "required": [ + "details" + ], + "type": "object", + "properties": { + "details": { + "type": "string", + "description": "The details Markdown rendered as HTML." + } + }, + "description": "The details Markdown rendered as HTML.", + "example": { + "details": "

Registration occurred at Jan 30, 2020, 1:13:25 PM

Questions

Who's a good kitty?: Purr...

Will you stop playing with that?: Meow!

EDIT

" + } + }, + "TimelineEventTemplateCreateRequest": { + "required": [ + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "$ref": "#/components/schemas/TimelineEventTemplateToken" + } + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + } + }, + "description": "State of the template definition being created.", + "example": { + "name": "PetSpot Registration", + "objectType": "contacts", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}", + "tokens": [ + { + "name": "petName", + "label": "Pet Name", + "type": "string" + }, + { + "name": "petAge", + "label": "Pet Age", + "type": "number" + }, + { + "name": "petColor", + "label": "Pet Color", + "type": "enumeration", + "options": [ + { + "value": "white", + "label": "White" + }, + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "other", + "label": "Other" + } + ] + } + ] + } + }, + "TimelineEventTemplateUpdateRequest": { + "required": [ + "id", + "name", + "tokens" + ], + "type": "object", + "properties": { + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "$ref": "#/components/schemas/TimelineEventTemplateToken" + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + } + }, + "description": "State of the template definition being updated.", + "example": { + "id": "1001298", + "name": "PetSpot Registration", + "headerTemplate": "Registered for [{{petName}}](https://my.petspot.com/pets/{{petName}})", + "detailTemplate": "Registration occurred at {{#formatDate timestamp}}{{/formatDate}}\n\n#### Questions\n{{#each extraData.questions}}\n **{{question}}**: {{answer}}\n{{/each}}\n\nEDIT", + "tokens": [ + { + "name": "petName", + "label": "Pet Name", + "type": "string", + "objectPropertyName": "firstname" + }, + { + "name": "petAge", + "label": "Pet Age", + "type": "number" + }, + { + "name": "petColor", + "label": "Pet Color", + "type": "enumeration", + "options": [ + { + "value": "white", + "label": "White" + }, + { + "value": "black", + "label": "Black" + }, + { + "value": "brown", + "label": "Brown" + }, + { + "value": "yellow", + "label": "Yellow" + }, + { + "value": "other", + "label": "Other" + } + ] + } + ] + } + }, + "CollectionResponseTimelineEventTemplateNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TimelineEventTemplate" + } + } + } + }, + "BatchResponseTimelineEventResponse": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "description": "The time the request was completed.", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "description": "The time the request occurred.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "The time the request began processing.", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "description": "Successfully created events.", + "items": { + "$ref": "#/components/schemas/TimelineEventResponse" + } + }, + "status": { + "type": "string", + "description": "The status of the batch response. Should always be COMPLETED if processed.", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "The state of the batch event request.", + "example": { + "results": [ + { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-6edaa73d-d734-404d-908f-74774d58ac2b", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:13:25.665Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + { + "objectType": "contacts", + "id": "petspot:1001298:pocket-tiger@petspot.com-0df6277b-6eba-4d1f-8c19-1994cbfaa4ca", + "eventTemplateId": "1001298", + "email": "pocket-tiger@petspot.com", + "objectId": "28651", + "timestamp": "2020-01-30T18:13:25.665Z", + "tokens": { + "petName": "Pocket", + "petColor": "yellow", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good kitty?", + "answer": "Purr..." + }, + { + "question": "Will you stop playing with that?", + "answer": "Meow!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Pocket", + "headerLabel": "Pocket Tiger", + "url": "https://my.petspot.com/pets/Pocket", + "width": 600, + "height": 400 + } + } + ], + "status": "COMPLETE", + "startedAt": "2020-01-30T18:13:24.974023Z", + "completedAt": "2020-01-30T18:13:26.227559Z" + } + }, + "BatchInputTimelineEvent": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "A collection of timeline events we want to create.", + "items": { + "$ref": "#/components/schemas/TimelineEvent" + } + } + }, + "description": "Used to create timeline events in batches.", + "example": { + "inputs": [ + { + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "tokens": { + "petName": "Art3mis", + "petAge": 3, + "petColor": "black" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + }, + { + "eventTemplateId": "1001298", + "email": "pocket-tiger@petspot.com", + "tokens": { + "petName": "Pocket", + "petAge": 3, + "petColor": "yellow" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good kitty?", + "answer": "Purr..." + }, + { + "question": "Will you stop playing with that?", + "answer": "Meow!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Pocket", + "headerLabel": "Pocket Tiger", + "url": "https://my.petspot.com/pets/Pocket", + "width": 600, + "height": 400 + } + } + ] + } + }, + "TimelineEventTemplate": { + "required": [ + "id", + "name", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "detailTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline when you expand the details." + }, + "name": { + "type": "string", + "description": "The template name." + }, + "tokens": { + "type": "array", + "description": "A collection of tokens that can be used as custom properties on the event and to create fully fledged CRM objects.", + "items": { + "$ref": "#/components/schemas/TimelineEventTemplateToken" + } + }, + "id": { + "type": "string", + "description": "The template ID." + }, + "headerTemplate": { + "type": "string", + "description": "This uses Markdown syntax with Handlebars and event-specific data to render HTML on a timeline as a header." + }, + "objectType": { + "type": "string", + "description": "The type of CRM object this template is for. [Contacts, companies, tickets, and deals] are supported." + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "The current state of the template definition." + }, + "TimelineEventTemplateTokenOption": { + "required": [ + "label", + "value" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "TimelineEventTemplateToken": { + "required": [ + "label", + "name", + "type" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "The date and time that the Event Template Token was created, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + }, + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "$ref": "#/components/schemas/TimelineEventTemplateTokenOption" + } + }, + "name": { + "type": "string", + "description": "The name of the token referenced in the templates. This must be unique for the specific template. It may only contain alphanumeric characters, periods, dashes, or underscores (. - _)." + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + }, + "type": { + "type": "string", + "description": "The data type of the token. You can currently choose from [string, number, date, enumeration].", + "enum": [ + "date", + "enumeration", + "number", + "string" + ] + }, + "updatedAt": { + "type": "string", + "description": "The date and time that the Event Template Token was last updated, as an ISO 8601 timestamp. Will be null if the template was created before Feb 18th, 2020.", + "format": "date-time" + } + }, + "description": "State of the token definition.", + "example": { + "name": "petType", + "label": "Pet Type", + "type": "enumeration", + "createdAt": "2020-02-12T20:58:26Z", + "updatedAt": "2020-02-12T20:58:26Z", + "objectPropertyName": "customPropertyPetType", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + } + ] + } + }, + "TimelineEventResponse": { + "required": [ + "eventTemplateId", + "id", + "objectType", + "tokens" + ], + "type": "object", + "properties": { + "eventTemplateId": { + "type": "string", + "description": "The event template ID." + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "extraData": { + "type": "object", + "properties": {}, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "$ref": "#/components/schemas/TimelineEventIFrame" + }, + "domain": { + "type": "string", + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "type": "string", + "description": "Identifier for the event. This should be unique to the app and event template. If you use the same ID for different CRM objects, the last to be processed will win and the first will not have a record. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "type": "string", + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "type": "string", + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "type": "string", + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "type": "string", + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.", + "format": "date-time" + }, + "objectType": { + "type": "string", + "description": "The ObjectType associated with the EventTemplate." + } + }, + "description": "The current state of the timeline event.", + "example": { + "objectType": "contacts", + "id": "petspot:1001298:art3mis-pup@petspot.com-004-invalid", + "eventTemplateId": "1001298", + "email": "art3mis-pup@petspot.com", + "objectId": "28001", + "timestamp": "2020-01-30T18:37:15.569Z", + "tokens": { + "petName": "Art3mis", + "petColor": "black", + "petAge": "3" + }, + "extraData": { + "questions": [ + { + "question": "Who's a good girl?", + "answer": "Bark!" + }, + { + "question": "Do you wanna go on a walk?", + "answer": "Woof!" + } + ] + }, + "timelineIFrame": { + "linkLabel": "View Art3mis", + "headerLabel": "Art3mis dog", + "url": "https://my.petspot.com/pets/Art3mis", + "width": 600, + "height": 400 + } + } + }, + "TimelineEventTemplateTokenUpdateRequest": { + "required": [ + "label" + ], + "type": "object", + "properties": { + "options": { + "type": "array", + "description": "If type is `enumeration`, we should have a list of options to choose from.", + "items": { + "$ref": "#/components/schemas/TimelineEventTemplateTokenOption" + } + }, + "label": { + "type": "string", + "description": "Used for list segmentation and reporting." + }, + "objectPropertyName": { + "type": "string", + "description": "The name of the CRM object property. This will populate the CRM object property associated with the event. With enough of these, you can fully build CRM objects via the Timeline API." + } + }, + "description": "State of the token definition for update requests.", + "example": { + "label": "petType edit", + "options": [ + { + "value": "dog", + "label": "Dog" + }, + { + "value": "cat", + "label": "Cat" + }, + { + "value": "bird", + "label": "Bird" + } + ] + } + }, + "BatchResponseTimelineEventResponseWithErrors": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TimelineEventResponse" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "TranscriptUtterance": { + "required": [ + "endTimeMillis", + "id", + "startTimeMillis", + "text" + ], + "type": "object", + "properties": { + "endTimeMillis": { + "type": "integer", + "format": "int32" + }, + "startTimeMillis": { + "type": "integer", + "format": "int32" + }, + "speaker": { + "$ref": "#/components/schemas/Speaker" + }, + "text": { + "type": "string" + }, + "id": { + "type": "string" + }, + "languageCode": { + "type": "string" + } + } + }, + "TranscriptCreateUtterance": { + "required": [ + "endTimeMillis", + "speaker", + "startTimeMillis", + "text" + ], + "type": "object", + "properties": { + "endTimeMillis": { + "type": "integer", + "format": "int32" + }, + "startTimeMillis": { + "type": "integer", + "format": "int32" + }, + "speaker": { + "$ref": "#/components/schemas/Speaker" + }, + "text": { + "type": "string" + }, + "languageCode": { + "type": "string" + } + } + }, + "TranscriptResponse": { + "required": [ + "createdAt", + "engagementId", + "id", + "transcriptSource", + "transcriptUtterances", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "transcriptUtterances": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscriptUtterance" + } + }, + "transcriptSource": { + "type": "string", + "enum": [ + "HUBSPOT_GENERATED", + "INTEGRATOR_GENERATED" + ] + }, + "id": { + "type": "string" + }, + "engagementId": { + "type": "integer", + "format": "int64" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "Speaker": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "email": { + "type": "string" + } + } + }, + "TranscriptCreateRequest": { + "required": [ + "engagementId", + "transcriptCreateUtterances" + ], + "type": "object", + "properties": { + "transcriptCreateUtterances": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TranscriptCreateUtterance" + } + }, + "engagementId": { + "type": "integer", + "format": "int64" + } + } + } + }, + "responses": { + "Error": { + "description": "An error occurred.", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "securitySchemes": { + "oauth2": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://app.hubspot.com/oauth/authorize", + "tokenUrl": "https://api.hubapi.com/oauth/v1/token", + "scopes": { + "oauth": "User and Account Information", + "crm.objects.deals.read": "View deal records", + "crm.objects.subscriptions.read": "Read Commerce Subscriptions", + "crm.objects.services.read": "Read services", + "crm.objects.orders.read": "Read Orders", + "crm.objects.listings.write": "Write listings", + "crm.objects.custom.read": "View custom object records", + "crm.objects.companies.write": "View company records", + "crm.objects.custom.sensitive.write.v2": "Change custom object records (sensitive)", + "crm.objects.custom.highly_sensitive.write.v2": "Change custom object records (highly-sensitive)", + "crm.objects.companies.read": "Create or update company records", + "crm.objects.appointments.sensitive.read.v2": "Read appointments (sensitive)", + "crm.objects.contacts.highly_sensitive.read.v2": "View contact records (highly-sensitive)", + "crm.objects.companies.sensitive.read.v2": "View sensitive properties on company records", + "media_bridge.read": "Read media and media events", + "crm.objects.deals.highly_sensitive.read.v2": "View deal records (highly-sensitive)", + "crm.objects.contacts.highly_sensitive.write.v2": "Change contact records (highly-sensitive)", + "crm.objects.companies.highly_sensitive.read.v2": "View company records (highly-sensitive)", + "crm.objects.commercepayments.write": "Write commerce payments", + "crm.objects.invoices.write": "Write invoices", + "crm.objects.contacts.sensitive.write.v2": "Create or update sensitive properties on contact records", + "crm.objects.users.write": "Write User CRM objects", + "crm.objects.custom.sensitive.read.v2": "View custom object records (sensitive)", + "crm.objects.users.read": "Read User CRM objects", + "crm.objects.partner-services.read": "View Partner Service CRM objects", + "crm.objects.orders.write": "Write orders", + "crm.objects.partner-services.write": "Modify Partner Service CRM objects", + "crm.objects.appointments.write": "Write appointments", + "crm.objects.carts.write": "Write cart", + "tickets": "Read and write tickets", + "crm.objects.commercepayments.read": "Read the COMMERCE_PAYMENT object.", + "crm.objects.products.write": "Write to my Product Library", + "crm.objects.services.write": "Write services", + "crm.objects.subscriptions.write": "Write to Commerce Subscriptions", + "crm.objects.deals.sensitive.write.v2": "Create or update sensitive properties on deal records", + "crm.objects.contacts.read": "View contact records", + "crm.objects.appointments.sensitive.write.v2": "Write appointments (sensitive)", + "crm.objects.invoices.read": "Read invoices objects", + "tickets.sensitive.v2": "Tickets (sensitive)", + "crm.objects.custom.write": "Change custom object records", + "crm.objects.deals.write": "Create or update deal records", + "e-commerce": "e-commerce", + "crm.objects.appointments.read": "Read appointments", + "crm.objects.companies.sensitive.write.v2": "Create or update sensitive properties on company records", + "crm.objects.deals.highly_sensitive.write.v2": "Change deal records (highly-sensitive)", + "crm.objects.custom.highly_sensitive.read.v2": "View custom object records (highly-sensitive)", + "crm.objects.companies.highly_sensitive.write.v2": "Change company records (highly-sensitive)", + "crm.objects.goals.write": "Write goals", + "crm.objects.line_items.write": "Line Items", + "crm.objects.contacts.write": "Create or update contact records", + "crm.objects.goals.read": "Read goals", + "crm.objects.partner-clients.write": "Modify Partner Client CRM objects", + "crm.objects.line_items.read": "Line Items", + "crm.objects.deals.sensitive.read.v2": "View sensitive properties on deal records", + "tickets.highly_sensitive.v2": "Tickets (highly-sensitive)", + "crm.objects.quotes.write": "Quotes", + "crm.objects.leads.read": "Read lead objects", + "crm.objects.leads.write": "Modify lead objects", + "crm.objects.carts.read": "Read carts", + "crm.objects.quotes.read": "Quotes", + "crm.objects.courses.write": "Write courses", + "crm.objects.partner-clients.read": "View Partner Client CRM objects", + "crm.objects.courses.read": "Read courses", + "crm.objects.listings.read": "Read listings", + "crm.objects.contacts.sensitive.read.v2": "View sensitive properties on contact records", + "crm.objects.products.read": "Read from my Product Library", + "crm.objects.owners.read": "View owner records", + "crm.dealsplits.read_write": "Create or retrieve deal splits on a deal", + "crm.objects.feedback_submissions.read": "View feedback survey submissions", + "crm.schemas.custom.read": "View custom object definitions", + "crm.schemas.custom.write": "Change custom object definitions", + "crm.lists.read": "View segments", + "crm.lists.write": "Create or update segments", + "cms.membership.access_groups.write": "Write membership access groups.", + "automation": "Read from and write to my Workflows", + "crm.schemas.carts.read": "Read cart property settings", + "crm.schemas.quotes.read": "Quotes schemas", + "crm.schemas.listings.read": "Read listings property settings", + "crm.schemas.services.read": "Read services property settings", + "crm.schemas.line_items.read": "Line Items schemas", + "crm.schemas.subscriptions.read": "Read subscriptions schema", + "crm.schemas.companies.read": "View company property settings", + "crm.schemas.orders.read": "Read order property settings", + "crm.schemas.deals.read": "View deals property settings", + "crm.schemas.appointments.read": "Read appointments property settings", + "crm.schemas.courses.read": "Read courses property settings", + "crm.objects.marketing_events.write": "Write marketing events", + "crm.schemas.contacts.read": "View contacts property settings", + "crm.schemas.invoices.read": "Read invoices schema", + "timeline": "Create timeline events", + "crm.schemas.commercepayments.read": "Read the COMMERCE_PAYMENT properties.", + "crm.pipelines.orders.read": "View details about your cart pipelines including pipeline stage information", + "crm.objects.marketing_events.read": "Read marketing events", + "crm.schemas.subscriptions.write": "Write to Subscription properties", + "crm.schemas.listings.write": "Write listings property settings", + "crm.schemas.invoices.write": "Write invoices schema", + "crm.schemas.orders.write": "Write order property settings", + "crm.pipelines.orders.write": "Create, delete, or make to your order pipelines or their respective stages", + "crm.schemas.commercepayments.write": "Write commerce payments property settings", + "crm.schemas.services.write": "Write services property settings", + "crm.schemas.courses.write": "Write courses property settings", + "crm.schemas.deals.write": "Create new deal properties or change deal property settings", + "crm.schemas.appointments.write": "Write appointments property settings", + "crm.schemas.contacts.write": "Create new contact properties or change contact property settings", + "crm.schemas.carts.write": "Write cart property settings", + "crm.schemas.companies.write": "Create new company properties or change company property settings", + "crm.extensions_calling_transcripts.write": "Provides possibility to save and delete transcriptions", + "crm.extensions_calling_transcripts.read": "Provides possibility to read transcriptions" + } + } + } + }, + "private_apps_legacy": { + "type": "apiKey", + "name": "private-app-legacy", + "in": "header" + }, + "private_apps": { + "type": "apiKey", + "name": "private-app", + "in": "header" + }, + "oauth2_1": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://app.hubspot.com/oauth/authorize", + "tokenUrl": "https://api.hubapi.com/oauth/v1/token", + "scopes": { + "crm.schemas.subscriptions.write": "Write to Subscription properties", + "crm.objects.subscriptions.write": "Write to Commerce Subscriptions" + } + } + } + }, + "oauth2_legacy": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://app.hubspot.com/oauth/authorize", + "tokenUrl": "https://api.hubapi.com/oauth/v1/token", + "scopes": { + "crm.objects.custom.write": "Change custom object records", + "crm.objects.goals.read": "Read goals", + "crm.objects.leads.write": "Modify lead objects", + "e-commerce": "e-commerce", + "tickets": "Read and write tickets", + "crm.objects.goals.write": "Write goals", + "crm.objects.leads.read": "Read lead objects", + "crm.objects.custom.read": "View custom object records", + "crm.objects.subscriptions.read": "Read Commerce Subscriptions", + "crm.objects.commercepayments.read": "Read the COMMERCE_PAYMENT object.", + "media_bridge.read": "Read media and media events" + } + } + } + }, + "private_apps_legacy2": { + "type": "apiKey", + "name": "private-app-legacy", + "in": "header", + "flows": { + "authorizationCode": { + "scopes": {} + } + } + }, + "private_apps2": { + "type": "apiKey", + "name": "private-app", + "in": "header", + "flows": { + "authorizationCode": { + "scopes": { + "crm.objects.contacts.read": "", + "crm.objects.contacts.write": "" + } + } + } + }, + "developer_hapikey": { + "type": "apiKey", + "name": "hapikey", + "in": "query" + } + } + }, + "x-hubspot-product-tier-requirements": { + "marketing": "FREE", + "sales": "FREE", + "service": "FREE", + "cms": "FREE", + "commerce": "FREE", + "crmHub": "FREE", + "dataHub": "FREE" + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/__init__.py b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/__init__.py new file mode 100644 index 00000000..caa166c9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/__init__.py @@ -0,0 +1,42308 @@ +"""Arcade Starter Tools for hubspot_crm + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED BY TRANSPILING THE API STARTER TOOL JSON DEFINITIONS +IN THE ../wrapper_tools DIRECTORY INTO PYTHON CODE. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +import asyncio +import json +from enum import Enum +from typing import Annotated, Any + +import httpx +import jsonschema +from arcade_tdk import ToolContext, tool +from arcade_tdk.auth import OAuth2 +from arcade_tdk.errors import RetryableToolError + +from .request_body_schemas import REQUEST_BODY_SCHEMAS + +# Retry configuration +INITIAL_RETRY_DELAY = 0.5 # seconds + +HTTP_CLIENT = httpx.AsyncClient( + timeout=httpx.Timeout(60.0, connect=10.0), + limits=httpx.Limits(max_keepalive_connections=20, max_connections=100), + transport=httpx.AsyncHTTPTransport(retries=3), + http2=True, + follow_redirects=True, +) + + +class ToolMode(str, Enum): + """Mode for tools with complex request bodies.""" + + GET_REQUEST_SCHEMA = "get_request_schema" + EXECUTE = "execute" + + +def remove_none_values(data: dict[str, Any]) -> dict[str, Any]: + return {k: v for k, v in data.items() if v is not None} + + +async def make_request( + url: str, + method: str, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + content: str | None = None, + data: dict[str, Any] | None = None, + auth: tuple[str, str] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with retry logic for 5xx server errors.""" + for attempt in range(max_retries): + try: + response = await HTTP_CLIENT.request( + url=url, + auth=auth, + method=method, + params=params, + headers=headers, + content=content, + ) + response.raise_for_status() + except httpx.HTTPStatusError as e: + # Only retry on 5xx server errors + if e.response.status_code >= 500 and attempt < max_retries - 1: + # Exponential backoff: 0.5s, 1s, 2s + await asyncio.sleep(INITIAL_RETRY_DELAY * (2**attempt)) + continue + # Re-raise for 4xx errors or if max retries reached + raise + except httpx.RequestError: + # Don't retry request errors (network issues are handled by transport) + raise + else: + return response + + # This should never be reached, but satisfies type checker + raise httpx.RequestError("Max retries exceeded") # noqa: TRY003 + + +async def make_request_with_schema_validation( + url: str, + method: str, + request_data: dict[str, Any], + schema: dict[str, Any] | str, + auth: tuple[str, str] | None = None, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with schema validation on format errors.""" + # Parse schema if it's a string, skip validation if parsing fails + parsed_schema = None + if isinstance(schema, str): + try: + parsed_schema = json.loads(schema) + except Exception: + # If schema parsing fails, just skip validation + parsed_schema = None + else: + parsed_schema = schema + + try: + response = await make_request( + url=url, + auth=auth, + method=method, + params=params, + headers=headers, + content=json.dumps(request_data), + max_retries=max_retries, + ) + except httpx.HTTPStatusError as e: + # Only provide schema validation for format-related errors + if e.response.status_code in (400, 422): + api_error_details = f"API returned {e.response.status_code}: {e.response.text}" + + # Only run validation if we have a valid parsed schema + if parsed_schema is not None: + # Run validation to provide additional context + is_valid, validation_error = validate_json_against_schema( + request_data, parsed_schema + ) + + if not is_valid: + # Schema validation found issues - additional context + additional_context = ( + f"{api_error_details}\n\n" + f"Schema validation found the following issues:\n" + f"{validation_error}" + ) + else: + # Schema validation passed - just show API error + additional_context = api_error_details + else: + # No valid schema - just show API error + additional_context = api_error_details + + raise RetryableToolError( + message=(f"API request failed with validation error: {e.response.status_code}"), + developer_message=api_error_details, + additional_prompt_content=additional_context, + ) from e + else: + # For non-validation errors, re-raise as-is + raise + else: + return response + + +def validate_json_against_schema( + json_data: dict[str, Any], schema: dict[str, Any] +) -> tuple[bool, str | None]: + """Validate JSON data against an OpenAPI/JSON Schema. + + This provides full JSON Schema Draft 7 validation including: + - Required fields, types, enums + - Pattern validation (regex) + - Format validation (email, uuid, date-time, etc.) + - Min/max length and values + - oneOf, anyOf, allOf + - And all other JSON Schema features + + Args: + json_data: The JSON data to validate + schema: The JSON Schema to validate against + + Returns: + Tuple of (is_valid, error_messages). If valid, error_messages is None. + If invalid, error_messages contains all validation errors. + """ + try: + validator = jsonschema.Draft7Validator( + schema, format_checker=jsonschema.Draft7Validator.FORMAT_CHECKER + ) + # Collect ALL validation errors + errors = list(validator.iter_errors(json_data)) + if errors: + # Format all errors with their paths + error_messages = [] + for error in errors: + error_path = ".".join(str(p) for p in error.path) if error.path else "root" + error_messages.append(f"{error.message} at {error_path}") + # Join all errors with newlines + return False, "\n".join(error_messages) + else: + return True, None + except jsonschema.SchemaError as e: + return False, f"Invalid schema: {e.message}" + except Exception as e: + return False, f"Validation error: {e!s}" + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def retrieve_hubspot_crm_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "The type of CRM object to retrieve (e.g., contacts, companies). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + return_only_archived_records: Annotated[ + bool | None, + "Set true to return only archived records; false to return unarchived records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/read'." +]: + """Retrieve HubSpot CRM records by ID or unique property. + + Use this tool to fetch HubSpot CRM records by specifying a record ID or a custom unique value property using the `idProperty` parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTCRMRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTCRMRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTCRMRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/batch/read".format( # noqa: UP032 + objectType=crm_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTCRMRECORDS"], + params=remove_none_values({"archived": return_only_archived_records}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_object_association( + context: ToolContext, + association_type: Annotated[ + str, + "Specifies the type of association to create between the objects, such as 'contact_to_company'.", # noqa: E501 + ], + source_object_id: Annotated[ + str, + "The ID of the primary object to associate in HubSpot. This should be a valid string representing the CRM object's unique identifier.", # noqa: E501 + ], + source_object_type: Annotated[ + str, + "Type of the source object. Specify the CRM object type, such as 'contact', 'company', or 'deal'.", # noqa: E501 + ], + target_object_id: Annotated[ + str, + "The ID of the target object to associate with. This is the object you want to link to the main object in HubSpot CRM.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "The type of the target object to associate. Examples include 'contact', 'company', or 'deal'.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", # noqa: E501 +]: + """Create an association between two CRM objects in HubSpot. + + Use this tool to link two objects in HubSpot CRM by specifying their types, IDs, and the type of association. This is useful for connecting related records, such as associating a contact with a specific company or deal.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}".format( # noqa: UP032 + objectType=source_object_type, + objectId=source_object_id, + toObjectType=target_object_type, + toObjectId=target_object_id, + associationType=association_type, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def remove_crm_association( + context: ToolContext, + association_type: Annotated[ + str, + "The type of association between the CRM objects to be removed. Specify the nature of the relationship, such as 'contact-to-company'.", # noqa: E501 + ], + object_type: Annotated[ + str, "Specifies the type of the primary CRM object (e.g., 'contact', 'company')." + ], + source_object_id: Annotated[ + str, "The unique identifier of the source object whose association is to be removed." + ], + target_object_id: Annotated[ + str, + "The ID of the target object to unlink from the source object. This must be a string representing the unique identifier.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "Specifies the type of the target CRM object to unlink. Examples include 'contact', 'company', etc.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", # noqa: E501 +]: + """Remove associations between CRM objects. + + This tool removes the association between two CRM objects based on specified types and IDs. Use it when you need to delete a relationship or link between specific CRM entities.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}".format( # noqa: UP032 + objectType=object_type, + objectId=source_object_id, + toObjectType=target_object_type, + toObjectId=target_object_id, + associationType=association_type, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def update_multiple_hubspot_appointments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + hubspot_object_type: Annotated[ + str | None, + "Specify the type of HubSpot CRM object to update, e.g., 'appointments'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/update'.", +]: + """Update multiple appointments in HubSpot CRM. + + Use this tool to update multiple appointments by their internal IDs or unique property values within HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEHUBSPOTAPPOINTMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not hubspot_object_type: + missing_params.append(("hubspot_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEHUBSPOTAPPOINTMENTS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEHUBSPOTAPPOINTMENTS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/batch/update".format( # noqa: UP032 + objectType=hubspot_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEHUBSPOTAPPOINTMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_appointments_data( + context: ToolContext, + appointment_object_type: Annotated[ + str, "The type of HubSpot object to be queried, specifically for appointments." + ], + appointment_properties_to_return: Annotated[ + list[str] | None, + "A list of property names to include in the response. Properties not present on the requested objects are ignored.", # noqa: E501 + ] = None, + only_archived_results: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + paging_cursor_token: Annotated[ + str | None, "Token indicating the last successfully read resource to continue pagination." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List properties to return with their history of values. Reduces max results per request.", + ] = None, + results_limit: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + retrieve_associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. If specified associations don't exist, they will be ignored.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/objects/v3/{objectType}'." +]: + """Retrieve a page of appointments from HubSpot CRM. + + Fetches appointment details using the specified properties to control the data returned. Useful for accessing and managing CRM appointment information.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}".format( # noqa: UP032 + objectType=appointment_object_type + ), + method="GET", + params=remove_none_values({ + "limit": results_limit, + "after": paging_cursor_token, + "properties": appointment_properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_types, + "archived": only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_crm_appointment( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + appointment_object_type: Annotated[ + str | None, + "Specifies the type of CRM object to create. For appointments, this should be 'appointment'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/objects/v3/{objectType}'." +]: + """Create an appointment in the CRM with specified properties. + + Use this tool to schedule a new appointment within the CRM system. It requires the necessary properties for the appointment and returns the created appointment object along with its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECRMAPPOINTMENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not appointment_object_type: + missing_params.append(("appointment_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMAPPOINTMENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMAPPOINTMENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}".format( # noqa: UP032 + objectType=appointment_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECRMAPPOINTMENT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_batch_appointments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + appointment_object_type: Annotated[ + str | None, + "Specify the type of CRM object for the appointments, typically 'appointments'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/create'.", +]: + """Create multiple appointments in one request. + + This tool facilitates the creation of multiple appointments in a single API call. Use it when you need to schedule several appointments efficiently without making multiple requests. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHAPPOINTMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not appointment_object_type: + missing_params.append(("appointment_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHAPPOINTMENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHAPPOINTMENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/batch/create".format( # noqa: UP032 + objectType=appointment_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHAPPOINTMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_associations_in_hubspot( + context: ToolContext, + hubspot_object_id: Annotated[ + str, + "The unique identifier for the HubSpot CRM object whose associations are being requested.", + ], + object_type: Annotated[ + str, + "Specifies the type of HubSpot CRM object (e.g., contact, deal, company) whose associations you want to retrieve.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "The type of the target object to which the association is being found. Specify the object type like 'contact', 'deal', 'company', etc.", # noqa: E501 + ], + include_full_associations: Annotated[ + bool | None, + "Set to true to include full associations in the response, otherwise only basic associations will be returned.", # noqa: E501 + ] = False, + max_results: Annotated[ + int | None, + "Specifies the maximum number of associations to return. Provide an integer value to limit the results.", # noqa: E501 + ] = 500, + paging_offset_after: Annotated[ + str | None, + "A string used for pagination to get the next set of results after the specified cursor. Leave empty or omit for the first set of results.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}'.", # noqa: E501 +]: + """Retrieve associations between HubSpot CRM objects. + + This tool is used to get the associations between specified HubSpot CRM objects. Useful for identifying relationships between different objects in the CRM, such as contacts, deals, or companies.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}".format( # noqa: UP032 + objectType=object_type, objectId=hubspot_object_id, toObjectType=target_object_type + ), + method="GET", + params=remove_none_values({ + "after": paging_offset_after, + "limit": max_results, + "includeFA": include_full_associations, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def upsert_hubspot_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "The type of object in HubSpot CRM (e.g., contacts, companies) to create or update. Specify the object type relevant to your operation. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/upsert'.", +]: + """Create or update HubSpot CRM records in batch mode. + + Use this tool to create or update records in HubSpot CRM by specifying a unique property value. The `idProperty` parameter helps identify records uniquely for batch operations. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/batch/upsert".format( # noqa: UP032 + objectType=object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def search_appointments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + appointment_search_criteria_type: Annotated[ + str | None, + "Specify the type of object for the appointment search, such as 'appointments'. This determines the domain within the CRM to be searched. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/search'." +]: + """Search for appointments based on specified criteria. + + Use this tool to search for appointments in the CRM by specifying various criteria. It is useful for finding specific appointments or lists based on search conditions. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHAPPOINTMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not appointment_search_criteria_type: + missing_params.append(("appointment_search_criteria_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHAPPOINTMENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHAPPOINTMENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/search".format( # noqa: UP032 + objectType=appointment_search_criteria_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHAPPOINTMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def archive_multiple_appointments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + appointment_object_type: Annotated[ + str | None, + "The type of object to be archived, typically 'appointments' for this endpoint. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/archive'.", +]: + """Archive multiple appointments using their IDs. + + + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEAPPOINTMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not appointment_object_type: + missing_params.append(("appointment_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEAPPOINTMENTS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEAPPOINTMENTS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/batch/archive".format( # noqa: UP032 + objectType=appointment_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEAPPOINTMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def gdpr_delete_object( + context: ToolContext, + object_id: Annotated[ + str, "The unique identifier for the CRM object to be deleted under GDPR compliance." + ], + object_type_for_gdpr_deletion: Annotated[ + str, + "Specify the type of CRM object to delete (e.g., contacts, companies) for GDPR compliance.", + ], + unique_property_name: Annotated[ + str | None, "Specify a unique property name for the object to be deleted under GDPR." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/gdpr-delete'.", +]: + """Delete CRM objects in compliance with GDPR. + + This tool removes specified CRM objects in accordance with GDPR regulations. It's used when you need to ensure data is deleted to comply with GDPR requests.""" # noqa: E501 + request_data: Any = {"idProperty": unique_property_name, "objectId": object_id} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/gdpr-delete".format( # noqa: UP032 + objectType=object_type_for_gdpr_deletion + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def retrieve_crm_object( + context: ToolContext, + object_id: Annotated[ + str, + "The ID of the CRM object to retrieve. This can be the internal object ID or a unique property value specified by the id_property.", # noqa: E501 + ], + object_type: Annotated[ + str, + 'Specifies the type of CRM object to retrieve, such as "contacts", "companies", or "deals".', # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for. Missing associations are ignored.", # noqa: E501 + ] = None, + properties_list: Annotated[ + list[str] | None, + "An array of property names to be returned in the response. If any specified properties are not present, they will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List properties to be returned with their historical values. If a property doesn't exist, it'll be ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results." + ] = False, + unique_property_name: Annotated[ + str | None, + "Specify the name of a property with unique values for this object to identify it instead of the default ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/objects/v3/{objectType}/{objectId}'." +]: + """Fetch CRM object details by ID or unique property. + + Use this tool to retrieve details of a CRM object by specifying the object type and ID. You can control the properties returned using query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}".format( # noqa: UP032 + objectType=object_type, objectId=object_id + ), + method="GET", + params=remove_none_values({ + "properties": properties_list, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def delete_crm_object( + context: ToolContext, + crm_object_id: Annotated[ + str, + "The unique identifier for the CRM object to be deleted. This ID specifies which object will be moved to the recycling bin.", # noqa: E501 + ], + crm_object_type: Annotated[ + str, "Specify the type of CRM object to delete, such as 'contact', 'deal', or 'company'." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/objects/v3/{objectType}/{objectId}'.", +]: + """Delete a CRM object and move it to the recycling bin. + + Use this tool to delete an object in HubSpot CRM by specifying the object type and ID. The object will be moved to the recycling bin.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}".format( # noqa: UP032 + objectType=crm_object_type, objectId=crm_object_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def update_hubspot_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "The type of CRM object to update (e.g., contacts, companies). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + object_identifier: Annotated[ + str | None, + "A string representing the internal object ID or unique property value used to identify the HubSpot CRM object for updating. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property whose values are unique for the object, used to identify the object for the update. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/objects/v3/{objectType}/{objectId}'.", +]: + """Update specific properties of a HubSpot CRM object. + + This tool performs a partial update of an object in HubSpot CRM, identified by the internal object ID or a unique property value. It overwrites provided property values, errors out on read-only or non-existent properties, and allows clearing values by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + if not object_identifier: + missing_params.append(("object_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}".format( # noqa: UP032 + objectType=object_type, objectId=object_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECT"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def merge_hubspot_crm_objects( + context: ToolContext, + hubspot_object_type: Annotated[ + str, "Specify the type of HubSpot CRM object to merge, such as contact, company, or deal." + ], + object_id_to_merge: Annotated[ + str, + "The ID of the HubSpot CRM object to be merged into the primary object. This should be a string identifier.", # noqa: E501 + ], + primary_object_id: Annotated[ + str, "The ID of the primary HubSpot CRM object to retain post-merge." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/merge'." +]: + """Merge two HubSpot CRM objects into a single entity. + + Use this tool to merge two CRM objects of a specified type within HubSpot. It combines duplicate records into a single object, streamlining the data management process.""" # noqa: E501 + request_data: Any = { + "objectIdToMerge": object_id_to_merge, + "primaryObjectId": primary_object_id, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/objects/v3/{objectType}/merge".format( # noqa: UP032 + objectType=hubspot_object_type + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_batch_associations_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + from_object_type: Annotated[ + str | None, + "The type of the source object for the association (e.g., 'contact', 'company'). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + target_object_type: Annotated[ + str | None, + "The type of the object that the associations will point to (e.g., 'contacts', 'companies'). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create_create'.", # noqa: E501 +]: + """Batch create associations between object types in HubSpot CRM. + + This tool is used to batch create associations between two specified object types in HubSpot CRM, such as associating multiple contacts with companies in one request. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHASSOCIATIONSHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not from_object_type: + missing_params.append(("from_object_type", "path")) + if not target_object_type: + missing_params.append(("target_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEBATCHASSOCIATIONSHUBSPOT"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEBATCHASSOCIATIONSHUBSPOT"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create".format( # noqa: UP032 + fromObjectType=from_object_type, toObjectType=target_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHASSOCIATIONSHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def batch_read_associations( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + source_object_type: Annotated[ + str | None, + "The CRM object type from which the associations originate, such as 'contacts' or 'deals'. Specify a valid CRM object type. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + destination_object_type: Annotated[ + str | None, + "Specify the CRM object type to associate with, such as 'contacts' or 'companies'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read_read'.", # noqa: E501 +]: + """Retrieve batch associations between CRM object types in HubSpot. + + This tool retrieves a batch of association data between specified CRM object types in HubSpot, such as contacts to companies. Use it to efficiently access multiple associations at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHREADASSOCIATIONS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not source_object_type: + missing_params.append(("source_object_type", "path")) + if not destination_object_type: + missing_params.append(("destination_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHREADASSOCIATIONS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHREADASSOCIATIONS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read".format( # noqa: UP032 + fromObjectType=source_object_type, toObjectType=destination_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHREADASSOCIATIONS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def hubspot_batch_archive_associations( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + source_object_type: Annotated[ + str | None, + "The type of the source object for the associations to be archived (e.g., 'contacts', 'companies'). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + target_object_type: Annotated[ + str | None, + "Specify the type of the object to which the association is directed, e.g., 'company', 'deal'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive_archive'.", # noqa: E501 +]: + """Batch archive associations in HubSpot CRM. + + This tool is used to archive multiple associations between specified object types in HubSpot CRM in a single batch operation. Call this tool when you need to efficiently remove associations between records, such as contacts and companies, or deals and tickets, in bulk. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["HUBSPOTBATCHARCHIVEASSOCIATIONS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not source_object_type: + missing_params.append(("source_object_type", "path")) + if not target_object_type: + missing_params.append(("target_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["HUBSPOTBATCHARCHIVEASSOCIATIONS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["HUBSPOTBATCHARCHIVEASSOCIATIONS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive".format( # noqa: UP032 + fromObjectType=source_object_type, toObjectType=target_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["HUBSPOTBATCHARCHIVEASSOCIATIONS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_association_types( + context: ToolContext, + source_object_type: Annotated[ + str, + "Specifies the source object type in HubSpot CRM from which associations are retrieved (e.g., 'contact', 'deal').", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "Specify the type of the destination object to retrieve association types for. These are the related entities in HubSpot CRM.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/associations/{fromObjectType}/{toObjectType}/types_getAll'.", # noqa: E501 +]: + """Get association types between two object types in HubSpot CRM. + + Use this tool to retrieve all association types between specified object types in HubSpot CRM. This is useful when needing to understand the relationships between different entities in the CRM system.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/types".format( # noqa: UP032 + fromObjectType=source_object_type, toObjectType=target_object_type + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_batch_of_calls( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/create_create'.", +]: + """Create a batch of calls with specified properties and associations. + + This tool is used to create multiple calls at once in HubSpot CRM, specifying properties for each call and defining associations with other CRM records as needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFCALLS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCALLS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCALLS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFCALLS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_call_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/upsert_upsert'.", +]: + """Create or update call records in HubSpot CRM. + + This tool allows you to create or update call records in HubSpot CRM. It uses a unique property value specified by the `idProperty` query parameter to identify records that need to be updated or created. Use this tool when you need to batch upsert call records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTCALLRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCALLRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCALLRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTCALLRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_calls_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_only_archived: Annotated[ + bool | None, + "Set to 'true' to return only archived calls, 'false' to exclude them. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/read_read'." +]: + """Retrieve a batch of calls by ID from HubSpot CRM. + + Use this tool to fetch details of multiple calls from HubSpot CRM by providing their IDs. It returns information about each call in the batch. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVECALLSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVECALLSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVECALLSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVECALLSBATCH"], + params=remove_none_values({"archived": return_only_archived}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_batch_calls( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/update_update'.", +]: + """Update multiple calls in HubSpot CRM by ID. + + This tool updates a batch of call records in HubSpot CRM using their IDs. Use it to modify details of multiple calls efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHCALLS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHCALLS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHCALLS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHCALLS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_calls_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "Specify object types to retrieve associated IDs for. Comma-separated list. Non-existing associations are ignored.", # noqa: E501 + ] = None, + call_properties: Annotated[ + list[str] | None, + "A list of properties to include in the response, such as call date, duration, etc.", + ] = None, + paging_cursor_token: Annotated[ + str | None, + "The paging cursor token from the last successfully read resource for retrieving the next page of results.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with historical values. Note: Reduces max calls per request.", # noqa: E501 + ] = None, + results_per_page: Annotated[ + int | None, "The maximum number of call records to display per page." + ] = 10, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived call records. False will include non-archived records.", # noqa: E501 + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/calls_getPage'." +]: + """Retrieve a page of call records from HubSpot CRM. + + This tool is used to retrieve a page of call records from the HubSpot CRM. The response can be customized by specifying the desired call properties through the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/calls", + method="GET", + params=remove_none_values({ + "limit": results_per_page, + "after": paging_cursor_token, + "properties": call_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_hubspot_call( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/calls_create'." +]: + """Create a call in HubSpot with specified properties. + + Use this tool to create a call in HubSpot CRM with specified properties. It returns the newly created call details, including its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCALL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCALL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCALL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCALL"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_call_details( + context: ToolContext, + call_identifier: Annotated[ + str, + "The unique identifier for the call. This can be an internal object ID or a unique property value as specified.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "Specify object types to retrieve associated IDs for. Use comma-separated values.", + ] = None, + only_archived_results: Annotated[ + bool | None, "Specify `True` to return only archived results, otherwise `False`." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "Comma-separated list of properties to return with history. Ignores non-existent properties.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to return in the response. Ignored if not present on requested object.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "Unique property name used to identify the call object in HubSpot CRM." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/calls/{callId}_getById'." +]: + """Retrieve details of a call using its ID in HubSpot CRM. + + This tool fetches the details of a call object in HubSpot CRM using the call ID. It allows optional control over which properties of the call are returned. Use this tool to retrieve specific information on call objects by their unique identification.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/calls/{callId}".format(callId=call_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_call_in_hubspot( + context: ToolContext, + call_identifier: Annotated[ + str, "The unique identifier for the call to be archived in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/calls/{callId}_archive'.", +]: + """Archive a call in HubSpot CRM by moving it to the recycle bin. + + Use this tool to move a specific call, identified by its `callId`, to the recycling bin in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/calls/{callId}".format(callId=call_identifier), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_call_info( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + call_identifier: Annotated[ + str | None, + "The identifier for the call object you wish to update. This can be the internal call ID or a unique value defined by the `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property for identifying the call object, other than the default ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/calls/{callId}_update'." +]: + """Update details of a specific call record in the CRM. + + Use this tool to perform a partial update of a call object in the HubSpot CRM using its `{callId}` or a unique property. Only provided properties will be updated. Read-only and non-existent properties will cause errors. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECALLINFO"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not call_identifier: + missing_params.append(("call_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECALLINFO"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECALLINFO"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/{callId}".format(callId=call_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECALLINFO"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_calls_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/archive_archive'.", +]: + """Archive a batch of calls by their IDs. + + Use this tool to archive multiple calls in HubSpot CRM by providing their IDs. Archived calls can be restored within 90 days, but call recordings are permanently deleted. Refer to HubSpot's documentation for more details on restoring activities. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECALLSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECALLSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECALLSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECALLSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_calls_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/calls/search_doSearch'." +]: + """Search and filter call records in HubSpot CRM. + + Use this tool to search for calls in HubSpot CRM by applying filters on properties, searching through associations, and sorting the results. Ideal for retrieving specific call records from your HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCALLSHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCALLSHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCALLSHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/calls/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCALLSHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def archive_carts_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/archive'." +]: + """Archive multiple carts by ID in a batch operation. + + Use this tool to archive a batch of shopping carts by their IDs in HubSpot CRM. This is useful for managing and organizing outdated or completed carts. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECARTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECARTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECARTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECARTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def create_batch_of_carts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/create'." +]: + """Create a batch of carts efficiently in HubSpot CRM. + + Use this tool to create multiple shopping carts at once within HubSpot CRM. Ideal for managing cart data in bulk efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFCARTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCARTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCARTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFCARTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.read"])) +async def retrieve_cart_details( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "List object types to retrieve associated IDs for. Ignored if associations don't exist.", + ] = None, + cart_properties_to_return: Annotated[ + list[str] | None, + "List of properties to include in the response for each cart. Ignored if missing on objects.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "Maximum number of results to display per page when retrieving cart details." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The paging cursor token for retrieving the next set of results. Use the `paging.next.after` from the previous response for more results.", # noqa: E501 + ] = None, + properties_with_history_list: Annotated[ + list[str] | None, + "List of properties to return with their history in the response. Reduces max number of carts per request.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to return only archived results." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/carts'."]: + """Retrieve detailed information about shopping carts. + + Use this tool to get information about shopping carts, with options to specify which details to retrieve via query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/carts", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": cart_properties_to_return, + "propertiesWithHistory": properties_with_history_list, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def create_cart_hubspot_crm( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts'."]: + """Create a cart and retrieve its details including ID. + + Use this tool to create a new cart in HubSpot CRM with specified properties. It returns a detailed cart object including its unique ID. Ideal for setting up new customer carts. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECARTHUBSPOTCRM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECARTHUBSPOTCRM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECARTHUBSPOTCRM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECARTHUBSPOTCRM"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.read"])) +async def retrieve_cart_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. Default is false. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/read'." +]: + """Retrieve cart records by record ID or custom property. + + Use this tool to fetch cart records from HubSpot CRM by specifying record IDs or using a custom unique value property. Ideal for accessing detailed cart information. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVECARTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVECARTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVECARTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVECARTRECORDS"], + params=remove_none_values({"archived": only_archived_results}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def upsert_cart_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/upsert'." +]: + """Create or update cart records in HubSpot CRM. + + Use this tool to create or update cart records based on a unique property value specified by the `idProperty`. Ideal for managing cart data in bulk within the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTCARTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCARTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCARTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTCARTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def update_carts_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/update'." +]: + """Update a batch of carts by internal ID or unique properties. + + Use this tool to update multiple carts in HubSpot CRM by their internal IDs or unique property values. Useful for synchronizing cart information in bulk. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECARTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECARTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECARTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECARTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.read"])) +async def search_hubspot_carts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/carts/search'." +]: + """Search for carts in HubSpot CRM. + + This tool performs a search query to retrieve cart information from HubSpot CRM. It can be used to find specific carts using various search parameters. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTCARTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTCARTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTCARTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTCARTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.read"])) +async def get_cart_details( + context: ToolContext, + cart_identifier: Annotated[ + str, + "The unique identifier for the cart. This can be the internal ID or a unique property value specified by the `idProperty` parameter.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for, such as 'deals' or 'contacts'.", + ] = None, + only_return_archived_results: Annotated[ + bool | None, "Set to `true` to return only archived results; `false` includes all." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "Specify properties to retrieve alongside their history of previous values, separated by commas.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "List of specific properties to retrieve for the cart. Ignored if properties don't exist.", + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify a property name with unique values for the cart object, if not using the default internal ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/carts/{cartId}'." +]: + """Retrieve detailed information of a cart by ID. + + Use this tool to get detailed information about a specific cart in the HubSpot CRM by providing the cart ID. It allows for optional specification of unique property values and controlled return data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/carts/{cartId}".format(cartId=cart_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_return_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def delete_shopping_cart( + context: ToolContext, + cart_identifier: Annotated[ + str, + "The unique identifier of the shopping cart to delete from HubSpot CRM. It should be a string.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/carts/{cartId}'." +]: + """Delete a shopping cart from HubSpot CRM. + + Use this tool to move a shopping cart, identified by its `cartId`, to the recycling bin in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/carts/{cartId}".format(cartId=cart_identifier), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.carts.write"])) +async def update_cart_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + cart_identifier: Annotated[ + str | None, + "The unique identifier of the cart to be updated. This is required to specify which cart's properties will be modified. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_identifier_property: Annotated[ + str | None, + "The name of the property with unique values for this cart object to identify it. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/carts/{cartId}'." +]: + """Update specific properties of a cart in HubSpot CRM. + + This tool updates specified properties of a cart identified by `cartId` within HubSpot CRM. It's used to perform partial updates, where provided property values are overwritten, and any attempt to modify read-only or non-existent properties will result in an error. Properties can be cleared by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECARTPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not cart_identifier: + missing_params.append(("cart_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECARTPROPERTIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECARTPROPERTIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/carts/{cartId}".format(cartId=cart_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECARTPROPERTIES"], + params=remove_none_values({"idProperty": unique_identifier_property}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def upsert_commerce_payments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/upsert'.", +]: + """Create or update unique commerce payment records in HubSpot. + + Use this tool to create new commerce payment records or update existing ones in HubSpot CRM. The tool identifies records by a unique property value specified by the `idProperty` query parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTCOMMERCEPAYMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCOMMERCEPAYMENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCOMMERCEPAYMENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTCOMMERCEPAYMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def create_batch_commerce_payments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/create'.", +]: + """Create a batch of commerce payments in HubSpot CRM. + + This tool is used to create a batch of commerce payments in the HubSpot CRM system. It should be called when there's a need to process multiple payment entries at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHCOMMERCEPAYMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEBATCHCOMMERCEPAYMENTS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEBATCHCOMMERCEPAYMENTS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHCOMMERCEPAYMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.read"])) +async def retrieve_commerce_payment_details( + context: ToolContext, + commerce_payment_id: Annotated[ + str, + "The unique identifier for the commerce payment to retrieve details for. It corresponds to the internal object ID by default.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. If any specified associations do not exist, they are ignored.", # noqa: E501 + ] = None, + only_return_archived_results: Annotated[ + bool | None, "Specify `true` to return only archived results. Default is `false`." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to retrieve along with their historical values. Specify as comma-separated values.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "A list of property names to be included in the response. Irrelevant properties will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "The property name used as a unique identifier for the commerce payment object." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/commerce_payments/{commercePaymentId}'.", +]: + """Retrieve details of a specific commerce payment using its ID. + + Use this tool to obtain detailed information about a commerce payment by specifying its unique ID. This can include any details specified by the `properties` query parameter, if required.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId}".format( # noqa: UP032 + commercePaymentId=commerce_payment_id + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_return_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def delete_commerce_payment( + context: ToolContext, + commerce_payment_id: Annotated[ + str, "The unique identifier for the commerce payment to be moved to the recycling bin." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/commerce_payments/{commercePaymentId}'.", # noqa: E501 +]: + """Delete a commerce payment from the CRM system. + + Use this tool to move a specified commerce payment to the recycling bin by providing the payment ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId}".format( # noqa: UP032 + commercePaymentId=commerce_payment_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def update_commerce_payment( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + commerce_payment_id: Annotated[ + str | None, + "The internal ID of the commerce payment to update. This ID identifies the specific payment object within the system. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property for identifying the object. Use this if not using the default internal ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/commerce_payments/{commercePaymentId}'.", +]: + """Partially update a commerce payment by ID or unique property. + + Use this tool to perform a partial update of a commerce payment object identified by its internal ID or a unique property specified by `idProperty`. Ensure provided property values exist and are not read-only; this will overwrite them. To clear a value, pass an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not commerce_payment_id: + missing_params.append(("commerce_payment_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId}".format( # noqa: UP032 + commercePaymentId=commerce_payment_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENT"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def archive_commerce_payments_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/archive'.", +]: + """Archive a batch of commerce payments by ID. + + Use this tool to archive multiple commerce payments at once by their IDs. Ideal for managing and organizing payment data efficiently by removing outdated or unnecessary records in batches. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECOMMERCEPAYMENTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["ARCHIVECOMMERCEPAYMENTSBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["ARCHIVECOMMERCEPAYMENTSBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECOMMERCEPAYMENTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def update_commerce_payments_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/update'.", +]: + """Update a batch of commerce payments by internal ID or unique values. + + Use this tool to update multiple commerce payments in HubSpot CRM by providing their internal IDs or unique property values, allowing for efficient bulk modifications. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENTSBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENTSBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECOMMERCEPAYMENTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.read"])) +async def retrieve_commerce_payment_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_results_only: Annotated[ + bool | None, + "Return only archived commerce payment records if set to true. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/read'.", +]: + """Retrieve commerce payment records by ID or unique property. + + This tool is used to fetch commerce payment records from HubSpot CRM by specifying record IDs or using a custom unique property for retrieval. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVECOMMERCEPAYMENTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVECOMMERCEPAYMENTRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVECOMMERCEPAYMENTRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVECOMMERCEPAYMENTRECORDS"], + params=remove_none_values({"archived": return_archived_results_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.read"])) +async def search_commerce_payments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/search'.", +]: + """Search for commerce payments in HubSpot CRM. + + Use this tool to search for commerce payments within the HubSpot CRM. It should be called when you need to retrieve payment information from the CRM database. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCOMMERCEPAYMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCOMMERCEPAYMENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCOMMERCEPAYMENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCOMMERCEPAYMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.read"])) +async def get_commerce_payments( + context: ToolContext, + associations_to_retrieve: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. Non-existing associations are ignored.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, + "The paging cursor token from the last successfully read resource. Used for paginating through results.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to be returned with their historical values. Reduces the maximum payments per request.", # noqa: E501 + ] = None, + results_per_page: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + returned_properties: Annotated[ + list[str] | None, + "List the properties to return in the response. Non-present properties are ignored.", + ] = None, + show_only_archived: Annotated[ + bool | None, "Set to true to return only archived results." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/commerce_payments'." +]: + """Retrieve a page of commerce payments from HubSpot CRM. + + This tool allows you to retrieve a page of commerce payments from HubSpot CRM, with customizable properties.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments", + method="GET", + params=remove_none_values({ + "limit": results_per_page, + "after": paging_cursor_token, + "properties": returned_properties, + "propertiesWithHistory": properties_with_history, + "associations": associations_to_retrieve, + "archived": show_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.commercepayments.write"])) +async def create_commerce_payment( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments'." +]: + """Create a commerce payment and return its details. + + Use this tool to create a new commerce payment in the HubSpot CRM. It returns the details of the payment, including the unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECOMMERCEPAYMENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECOMMERCEPAYMENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECOMMERCEPAYMENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/commerce_payments", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECOMMERCEPAYMENT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def update_subscription_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/update'.", +]: + """Update multiple subscriptions by ID or property values. + + This tool updates a batch of subscriptions using their internal IDs or unique property values in HubSpot CRM. Use it when you need to modify details for multiple subscriptions simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTIONBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTIONBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTIONBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTIONBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def archive_subscriptions_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/archive'.", +]: + """Archive a batch of subscriptions by ID in HubSpot CRM. + + Use this tool to archive multiple subscriptions at once by providing their IDs. This is useful for managing bulk subscription updates in HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVESUBSCRIPTIONSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVESUBSCRIPTIONSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVESUBSCRIPTIONSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVESUBSCRIPTIONSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.subscriptions.read"])) +async def search_hubspot_subscriptions( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/search'." +]: + """Search for subscriptions in HubSpot CRM. + + Use this tool to search and retrieve details of specific subscriptions from HubSpot CRM based on given criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTSUBSCRIPTIONS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTSUBSCRIPTIONS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTSUBSCRIPTIONS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTSUBSCRIPTIONS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.subscriptions.read"])) +async def get_subscription_data( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. Ignored if not existing.", + ] = None, + max_results_per_page: Annotated[ + int | None, "The maximum number of subscription results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token indicating the last successfully read resource, used for pagination in subsequent requests.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of property names for retrieving their values and history. Reduces max subscriptions per request.", # noqa: E501 + ] = None, + requested_properties: Annotated[ + list[str] | None, + "A list of property names to be included in the response. If a specified property is not present in the requested objects, it will be ignored.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, + "Set to true to return only archived results. Set to false to include active results.", + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/subscriptions'." +]: + """Fetch a page of subscription data from HubSpot CRM. + + This tool retrieves a page of subscription data from HubSpot CRM. Use this tool to access subscription information, with options to control the returned data via query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/subscriptions", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": requested_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_subscription( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/subscriptions'." +]: + """Create a new subscription in HubSpot CRM. + + This tool creates a subscription in HubSpot CRM using specified properties and returns a copy of the object with its ID included. Use it to add new subscriptions to the CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATESUBSCRIPTION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATESUBSCRIPTION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATESUBSCRIPTION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATESUBSCRIPTION"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def upsert_subscriptions_in_hubspot_crm( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/upsert'.", +]: + """Batch create or update subscription records in HubSpot CRM. + + Use this tool to create or update subscription records based on a unique property value in HubSpot CRM. It's ideal for ensuring your subscription data is up-to-date by specifying an `idProperty` for uniquely identifying existing records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTSUBSCRIPTIONSINHUBSPOTCRM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPSERTSUBSCRIPTIONSINHUBSPOTCRM"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPSERTSUBSCRIPTIONSINHUBSPOTCRM"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTSUBSCRIPTIONSINHUBSPOTCRM"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.subscriptions.read"])) +async def retrieve_subscription_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + only_archived_records: Annotated[ + bool | None, + "Set to true to return only archived results. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/read'.", +]: + """Retrieve subscription records by ID or unique property. + + Use this tool to fetch subscription records from HubSpot CRM by providing record IDs or a custom unique value property. Ideal for accessing specific subscription details quickly. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVESUBSCRIPTIONRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVESUBSCRIPTIONRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVESUBSCRIPTIONRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVESUBSCRIPTIONRECORDS"], + params=remove_none_values({"archived": only_archived_records}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_batch_subscriptions( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/create'.", +]: + """Create a batch of subscriptions in HubSpot CRM. + + This tool is used to create multiple subscriptions at once in HubSpot CRM. Call this tool when you need to add several subscriptions simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHSUBSCRIPTIONS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHSUBSCRIPTIONS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHSUBSCRIPTIONS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHSUBSCRIPTIONS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.subscriptions.read"])) +async def get_subscription_details( + context: ToolContext, + subscription_id: Annotated[ + str, + "The unique identifier for the subscription object to be retrieved. This can be the internal object ID or a unique property value specified by the idProperty query param.", # noqa: E501 + ], + association_types_to_retrieve: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Non-existing associations will be ignored.", # noqa: E501 + ] = None, + only_archived_results: Annotated[ + bool | None, "Set to true to return only archived items, false to exclude them." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "A list of property names whose values and history are to be retrieved for the subscription. Properties not present on the object will be ignored.", # noqa: E501 + ] = None, + requested_properties: Annotated[ + list[str] | None, + "List of properties to return in the response. Properties not present in the object will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The property name used to uniquely identify the subscription object instead of the default ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/subscriptions/{subscriptionId}'.", +]: + """Retrieve details of a specific subscription by ID. + + This tool is used to fetch the details of a subscription object identified by its subscription ID. It allows control over what is returned using query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId}".format( # noqa: UP032 + subscriptionId=subscription_id + ), + method="GET", + params=remove_none_values({ + "properties": requested_properties, + "propertiesWithHistory": properties_with_history, + "associations": association_types_to_retrieve, + "archived": only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def delete_subscription( + context: ToolContext, + subscription_id: Annotated[ + str, + "The unique identifier of the subscription to be deleted. This moves the subscription to the recycling bin in HubSpot CRM.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/subscriptions/{subscriptionId}'.", +]: + """Delete a specific subscription from HubSpot CRM. + + This tool deletes a subscription identified by `subscriptionId` from HubSpot CRM, moving it to the recycling bin. Use this when you need to remove a subscription object from the system.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId}".format( # noqa: UP032 + subscriptionId=subscription_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def update_subscription( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + subscription_id: Annotated[ + str | None, + "The identifier for the subscription to update, typically the internal object ID. Specify this to target the right subscription. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property to identify the subscription object for updating. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/subscriptions/{subscriptionId}'.", +]: + """Update subscription details using provided property values. + + Use this tool to perform a partial update of a subscription object in HubSpot CRM. Identify the object by its internal ID or a unique property value using the `idProperty` query parameter. Overwrite properties by providing new values; clear them by passing an empty string. Errors occur for read-only or non-existent properties. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not subscription_id: + missing_params.append(("subscription_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId}".format( # noqa: UP032 + subscriptionId=subscription_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATESUBSCRIPTION"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_messages_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/update_update'.", +]: + """Update a batch of messages in HubSpot CRM. + + Use this tool to update multiple messages at once in HubSpot CRM by specifying either the communication ID or a unique property value. Only provided property values will be updated, and non-existent properties or read-only fields will cause errors. Include empty strings to clear properties. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMESSAGESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMESSAGESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMESSAGESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMESSAGESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def delete_batch_messages( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/archive_archive'.", +]: + """Delete a batch of messages by ID with restoration option. + + Delete multiple messages by their IDs. Deleted messages can be restored within 90 days. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["DELETEBATCHMESSAGES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETEBATCHMESSAGES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETEBATCHMESSAGES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["DELETEBATCHMESSAGES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_communications_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/upsert_upsert'.", +]: + """Create or update communication records in bulk. + + This tool allows you to batch create or update communication records in HubSpot CRM based on a unique property value. Utilize this tool when you need to synchronize communication data and ensure records are accurately up-to-date. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTCOMMUNICATIONSRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPSERTCOMMUNICATIONSRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPSERTCOMMUNICATIONSRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTCOMMUNICATIONSRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def read_communications_page( + context: ToolContext, + paging_cursor_token: Annotated[ + str | None, + "The paging cursor token for the next set of results to read from the previous request's `paging.next.after` JSON property.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their history. Reduces the maximum number of communications per request.", # noqa: E501 + ] = None, + results_per_page: Annotated[ + int | None, "The maximum number of results to display per page." + ] = 10, + retrieve_associations: Annotated[ + list[str] | None, + "Comma-separated list of object types to get associated IDs for. Ignored if the association doesn't exist.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results. False includes all results." + ] = False, + specified_properties: Annotated[ + list[str] | None, + "List of communication properties to return in the response. Properties not present will be ignored.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/communications_getPage'." +]: + """Retrieve a page of communications from HubSpot CRM. + + Use this tool to read a page of communications. You can control the information returned using query parameters for specific properties.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/communications", + method="GET", + params=remove_none_values({ + "limit": results_per_page, + "after": paging_cursor_token, + "properties": specified_properties, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associations, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_hubspot_communication( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/communications_create'." +]: + """Create a new communication entry in HubSpot CRM. + + This tool creates a communication in HubSpot CRM with specified properties and returns the created object, including its ID. Use this when you need to log or track communications within the CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOMMUNICATION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOMMUNICATION"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOMMUNICATION"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOMMUNICATION"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_communication_by_id( + context: ToolContext, + communication_identifier: Annotated[ + str, "Specify the unique ID or property value for the communication object to retrieve." + ], + properties_to_return: Annotated[ + list[str] | None, + "Comma-separated list of properties to include in the response. Missing properties are ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List the properties whose history of values should be returned. Comma-separated values are expected.", # noqa: E501 + ] = None, + retrieve_associated_object_types: Annotated[ + list[str] | None, + "A list of object types for retrieving associated IDs. Non-existing associations will be ignored.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, + "Set to true to return only results that have been archived. Defaults to false to include non-archived results.", # noqa: E501 + ] = False, + unique_property_name: Annotated[ + str | None, + "The property name used to uniquely identify the communication object. Allows retrieval by non-default identifiers.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/communications/{communicationId}_getById'.", # noqa: E501 +]: + """Retrieve details of a communication by its ID. + + Use this tool to obtain the details of a communication object by specifying its unique ID. The ID can be the internal object ID or any unique property value. You can control the returned data using query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/communications/{communicationId}".format( # noqa: UP032 + communicationId=communication_identifier + ), + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_types, + "archived": return_only_archived, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_communication( + context: ToolContext, + communication_id: Annotated[ + str, + "The unique identifier for the communication object to be archived. It must be a valid string representing an existing communication ID.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/communications/{communicationId}_archive'.", # noqa: E501 +]: + """Archive a communication by its ID. + + Use this tool to move a communication object to the recycling bin by specifying its ID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/communications/{communicationId}".format( # noqa: UP032 + communicationId=communication_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_communication_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + communication_id: Annotated[ + str | None, + "The internal object ID of the communication. Used to identify which communication object to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The unique property name used to identify the communication object if not using `communicationId`. It must refer to a property with unique values for the object. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/communications/{communicationId}_update'.", # noqa: E501 +]: + """Update communication object details in HubSpot CRM. + + Perform a partial update of a HubSpot CRM communication object using its `communicationId` or a unique property value. This tool overwrites provided property values, with errors for read-only or non-existent properties. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECOMMUNICATIONDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not communication_id: + missing_params.append(("communication_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATECOMMUNICATIONDETAILS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATECOMMUNICATIONDETAILS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/{communicationId}".format( # noqa: UP032 + communicationId=communication_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECOMMUNICATIONDETAILS"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_crm_messages( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/communications/search_doSearch'.", +]: + """Search and filter CRM messages based on various criteria. + + Use this tool to search for messages in the CRM by applying filters on properties, checking associations, and sorting the results. Ideal for retrieving specific communications data within the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCRMMESSAGES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCRMMESSAGES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCRMMESSAGES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCRMMESSAGES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_batch_communications( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to True to return only archived results. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/read_read'.", +]: + """Retrieve a batch of communication messages by ID. + + This tool retrieves a batch of communication messages from the HubSpot CRM using either the message ID or a unique property value. It should be called when you need to access multiple messages simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMMUNICATIONS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMMUNICATIONS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMMUNICATIONS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMMUNICATIONS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_hubspot_messages_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/create_create'.", +]: + """Create a batch of messages in HubSpot CRM. + + Use this tool to create multiple messages in HubSpot CRM simultaneously. Ideal for handling bulk message creation with optional properties and associations with other CRM records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMESSAGESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMESSAGESBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMESSAGESBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/communications/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMESSAGESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.read"])) +async def retrieve_batch_companies_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived companies in the results. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/read_read'.", +]: + """Retrieve a batch of company records from HubSpot CRM. + + Use this tool to retrieve multiple companies from HubSpot CRM by specifying their IDs or unique properties. You can customize the returned data using the `properties` query parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMPANIESHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMPANIESHUBSPOT"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMPANIESHUBSPOT"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEBATCHCOMPANIESHUBSPOT"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.read"])) +async def retrieve_all_companies( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, "The cursor token to fetch the next set of results in a paginated response." + ] = None, + properties_to_return: Annotated[ + list[str] | None, + "List of properties to include in the response. Ignore if not present on the object.", + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their history of previous values. This reduces max companies per request.", # noqa: E501 + ] = None, + results_per_page_limit: Annotated[ + int | None, "The maximum number of results to display per page." + ] = 10, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results in the response." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/companies_getPage'." +]: + """Retrieve all companies from HubSpot CRM. + + This tool retrieves all companies from the HubSpot CRM. It uses query parameters to control the information that gets returned, such as filtering or specifying fields. Useful for getting a comprehensive list of companies stored in the CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/companies", + method="GET", + params=remove_none_values({ + "limit": results_per_page_limit, + "after": paging_cursor_token, + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def create_company_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/companies_create'." +]: + """Create a new company in HubSpot CRM. + + Use this tool to create a single company in HubSpot CRM. It allows you to define property values for the company and specify associations with other CRM records. Ideal for organizing and managing company information efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECOMPANYHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECOMPANYHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECOMPANYHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECOMPANYHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.read"])) +async def search_companies_in_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/companies/search_doSearch'.", +]: + """Search for companies in HubSpot CRM using filters and sorting. + + This tool allows you to search for companies in HubSpot CRM by applying filters, associating searches, and sorting the results. It is useful for retrieving company information based on specific criteria quickly. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCOMPANIESINHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCOMPANIESINHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCOMPANIESINHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCOMPANIESINHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.read"])) +async def retrieve_company_by_id( + context: ToolContext, + company_identifier: Annotated[ + str, + "A unique identifier for the company, such as its ID or a unique property name, used to retrieve its details.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Ignores non-existent associations.", + ] = None, + company_properties_to_retrieve: Annotated[ + list[str] | None, + "List the specific company properties to retrieve, separated by commas. Ignored if properties are unavailable.", # noqa: E501 + ] = None, + retrieve_properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history of previous values. Ignored if properties aren't present.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, + "Set to true to return only archived results. If false, non-archived results will be returned.", # noqa: E501 + ] = False, + unique_property_name: Annotated[ + str | None, + "The name of a unique property to identify the company. Used instead of company ID.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/companies/{companyId}_getById'.", +]: + """Retrieve detailed company information using its ID. + + Use this tool to get detailed information about a company by providing its ID or a unique property. You can specify which properties to retrieve.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/companies/{companyId}".format( # noqa: UP032 + companyId=company_identifier + ), + method="GET", + params=remove_none_values({ + "properties": company_properties_to_retrieve, + "propertiesWithHistory": retrieve_properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def delete_company( + context: ToolContext, + company_id: Annotated[ + str, + "The unique identifier of the company to be deleted in HubSpot CRM. This ID is required to specify the company.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/companies/{companyId}_archive'.", +]: + """Delete a company by ID in HubSpot CRM. + + Use this tool to delete a company by its ID in HubSpot CRM. Deleted companies can be restored within 90 days if needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/companies/{companyId}".format( # noqa: UP032 + companyId=company_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def update_hubspot_company( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + company_unique_identifier: Annotated[ + str | None, + "The unique identifier for the company to be updated, either the companyId or a unique property value. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the name of the unique property used to identify the company. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/companies/{companyId}_update'.", +]: + """Update a company's details in HubSpot CRM using its ID. + + Use this tool to update a company's information in HubSpot CRM by specifying the `companyId` or a unique property. Only existing and writable properties can be updated. Properties can be cleared by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOMPANY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not company_unique_identifier: + missing_params.append(("company_unique_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOMPANY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOMPANY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/{companyId}".format( # noqa: UP032 + companyId=company_unique_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOMPANY"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def create_or_update_companies( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/upsert_upsert'.", +]: + """Create or update companies in HubSpot CRM using a unique identifier. + + This tool creates or updates companies in the HubSpot CRM based on a unique identifier property. It should be called when you need to batch upsert company records identified by a unique property. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEORUPDATECOMPANIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEORUPDATECOMPANIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEORUPDATECOMPANIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEORUPDATECOMPANIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def update_batch_of_companies( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/update_update'.", +]: + """Update multiple company records in HubSpot by ID. + + This tool allows batch updating of company records in the HubSpot CRM. It should be called when there is a need to update information for multiple companies at once, using their unique IDs. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHOFCOMPANIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHOFCOMPANIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHOFCOMPANIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHOFCOMPANIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def create_batch_of_companies( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/create_create'.", +]: + """Create a batch of companies with properties and associations. + + This tool allows you to create multiple companies in one request. Each company can have specific property values and can be associated with other CRM records. Use this when needing to add several companies at once along with their details and relationships. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOMPANIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOMPANIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOMPANIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOMPANIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def delete_companies_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/archive_archive'.", +]: + """Delete a batch of companies by ID in HubSpot CRM. + + This tool deletes a batch of companies in HubSpot CRM using their IDs. Deleted companies can be restored within 90 days. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["DELETECOMPANIESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETECOMPANIESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETECOMPANIESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/companies/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["DELETECOMPANIESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.companies.write"])) +async def merge_company_records( + context: ToolContext, + company_id_to_merge: Annotated[str, "The ID of the company to merge into the primary company."], + primary_company_id: Annotated[ + str, "The ID of the primary company into which the other company will be merged." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/companies/merge_merge'." +]: + """Merge two company records in HubSpot CRM. + + Use this tool to merge two company records into a single record in HubSpot CRM, ensuring data consistency.""" # noqa: E501 + request_data: Any = { + "objectIdToMerge": company_id_to_merge, + "primaryObjectId": primary_company_id, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/companies/merge", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def batch_read_contacts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to True to return only archived contacts. False excludes them. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/read'." +]: + """Retrieve multiple contacts using internal IDs or unique properties. + + Use this tool to read a batch of contacts from HubSpot CRM by providing their internal IDs or unique property values. Ideal for situations where multiple contact details are needed simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHREADCONTACTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHREADCONTACTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHREADCONTACTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHREADCONTACTS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_contact_details( + context: ToolContext, + contact_identifier: Annotated[ + str, "The ID or unique property value used to identify the contact in HubSpot CRM." + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Ignored if associations do not exist.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their history of previous values. Ignored if properties are not present.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + return_properties: Annotated[ + list[str] | None, + "List of properties to include in the response for the contact. If absent on the object, they will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The property name with unique values for the contact type, used to identify the object.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/contacts/{contactId}'." +]: + """Retrieve detailed information about a specific contact. + + This tool fetches detailed information about a contact from HubSpot CRM, identified by `contactId`. It provides an option to specify which properties to return using query parameters. Use this tool when you need to access in-depth details about a contact, such as their internal object ID or any unique property value.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/contacts/{contactId}".format( # noqa: UP032 + contactId=contact_identifier + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def delete_contact( + context: ToolContext, + contact_id: Annotated[ + str, "The unique identifier of the contact to be deleted and moved to the recycling bin." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/contacts/{contactId}'." +]: + """Delete a contact and move it to the recycling bin. + + Use this tool to delete a contact in HubSpot CRM, identified by `contactId`, moving it to the recycling bin.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/contacts/{contactId}".format( # noqa: UP032 + contactId=contact_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_contact_information( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + contact_id: Annotated[ + str | None, + "The unique ID or property value used to identify the contact for the update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the property name with unique values for identifying the contact, such as email or phone number. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/contacts/{contactId}'." +]: + """Update specific fields of a contact in HubSpot CRM. + + Use this tool to perform a partial update of a contact's information in HubSpot CRM. Identify the contact by `{contactId}` and specify fields to update. Properties not intended for update are ignored. Pass an empty string to clear values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECONTACTINFORMATION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not contact_id: + missing_params.append(("contact_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECONTACTINFORMATION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECONTACTINFORMATION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/{contactId}".format( # noqa: UP032 + contactId=contact_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECONTACTINFORMATION"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def merge_contacts( + context: ToolContext, + contact_id_to_merge: Annotated[ + str, "The ID of the contact object that will be merged into the primary contact." + ], + primary_contact_id: Annotated[ + str, + "The unique identifier of the primary contact that will remain after merging. This contact's information will be retained.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/merge'." +]: + """Merges two contacts into one in HubSpot CRM. + + Use this tool to merge two existing contacts within HubSpot CRM. It consolidates contact information, ensuring that no duplicate entries exist for the same individual.""" # noqa: E501 + request_data: Any = { + "objectIdToMerge": contact_id_to_merge, + "primaryObjectId": primary_contact_id, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/contacts/merge", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_contacts_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/archive'." +]: + """Archive a batch of contacts by ID in HubSpot CRM. + + Use this tool to archive multiple contacts simultaneously in HubSpot CRM by providing their IDs. This can be useful for managing or cleaning up contact lists efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECONTACTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECONTACTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECONTACTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECONTACTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_batch_contacts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/create'." +]: + """Create a batch of contacts in HubSpot CRM. + + Use this tool to create multiple contacts in HubSpot CRM at once. Ideal for bulk uploading contact information. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHCONTACTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHCONTACTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHCONTACTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHCONTACTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_batch_contacts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/update'." +]: + """Update a batch of contacts in HubSpot CRM. + + Use this tool to update multiple contacts simultaneously in HubSpot CRM. It is helpful when you need to make changes to several contact records at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHCONTACTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHCONTACTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHCONTACTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHCONTACTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def gdpr_delete_contact( + context: ToolContext, + contact_identifier: Annotated[ + str, + "The unique ID or email used to identify the contact for deletion. Use 'email' in conjunction with 'id_property' if identifying by email.", # noqa: E501 + ], + contact_identifier_property: Annotated[ + str | None, + "Specify 'email' to identify the contact by email address. If not using email, specify another unique identifier property.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/gdpr-delete'." +]: + """Permanently delete a contact for GDPR compliance. + + Use this tool to permanently delete a contact and all associated content to comply with GDPR. You can identify the contact by email address using the 'idProperty'. If the email isn't found, it will be added to a blocklist to avoid future use.""" # noqa: E501 + request_data: Any = {"objectId": contact_identifier, "idProperty": contact_identifier_property} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/contacts/gdpr-delete", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_contacts( + context: ToolContext, + contact_properties_to_retrieve: Annotated[ + list[str] | None, + "A list of properties to include in the response. Non-existent properties will be ignored.", + ] = None, + max_results_per_page: Annotated[ + int | None, "The maximum number of contact results to return per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token indicating the last read resource, used for pagination to retrieve more results.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Specify properties to return with their history of previous values, reducing the max number of objects per request.", # noqa: E501 + ] = None, + retrieve_associated_ids: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. If associations do not exist, they will be ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Whether to return only results that have been archived. Use 'true' for archived only.", + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/contacts'."]: + """Retrieve a page of contacts from HubSpot CRM. + + This tool retrieves a page of contacts from the HubSpot CRM. You can specify which properties you want to be returned by controlling the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/contacts", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": contact_properties_to_retrieve, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_ids, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_hubspot_contact( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts'."]: + """Create a contact in HubSpot CRM and retrieve its details. + + Use this tool to add a new contact to HubSpot CRM by specifying the desired properties. It returns a copy of the contact, including its unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCONTACT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCONTACT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCONTACT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCONTACT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_contacts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/search'." +]: + """Search contacts in HubSpot CRM. + + Use this tool to search for contacts within the HubSpot CRM. It is useful for retrieving contact information based on search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCONTACTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCONTACTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCONTACTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCONTACTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_contact_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/upsert'." +]: + """Upsert a batch of contacts in HubSpot CRM. + + This tool is used to upsert a batch of contacts in HubSpot CRM. It allows you to define property values for each contact record, making it ideal for updating or creating multiple contacts at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTCONTACTBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCONTACTBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCONTACTBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/contacts/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTCONTACTBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.read"])) +async def get_courses( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for; ignored if non-existent.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, "Specify the maximum number of courses to display in a single page of results." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The paging cursor token of the last successfully read resource, used to fetch the next page of results.", # noqa: E501 + ] = None, + properties_to_return: Annotated[ + list[str] | None, + "Comma separated list of properties to include in the response. Ignored if not present on requested objects.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history. This can reduce the number of courses per request.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. False includes non-archived results.", + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-410'."]: + """Fetch a page of courses from HubSpot CRM. + + Use this tool to read and retrieve information about a page of courses from HubSpot CRM. The response can be tailored using the `properties` query parameter to control what specific data is returned.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-410", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def create_hubspot_course( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410'."]: + """Create a course in HubSpot CRM and return its details. + + Use this tool to create a new course in HubSpot CRM with specified properties. It returns the course details, including the generated ID, upon successful creation. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOURSE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOURSE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOURSE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCOURSE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def archive_courses_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/archive'." +]: + """Archive a batch of courses by ID. + + Use this tool to archive multiple courses at once by providing their IDs. This simplifies the management of courses by automating the archiving process. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECOURSESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECOURSESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECOURSESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECOURSESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.read"])) +async def get_course_details( + context: ToolContext, + course_id: Annotated[ + str, + "The unique identifier for the course. Use this to specify which course details to retrieve.", # noqa: E501 + ], + include_properties: Annotated[ + list[str] | None, + "A list of property names to include in the response. Any missing properties will be ignored.", # noqa: E501 + ] = None, + include_properties_with_history: Annotated[ + list[str] | None, + "Specify properties to retrieve with their history of changes. Input as a list, each entry being a property name.", # noqa: E501 + ] = None, + retrieve_associated_object_types: Annotated[ + list[str] | None, + "A list of object types for retrieving associated IDs. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + unique_property_name: Annotated[ + str | None, "Specify the name of a unique property for the course object." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-410/{courseId}'." +]: + """Fetch details of a course using the course ID. + + Use this tool to retrieve detailed information about a course identified by its ID. The tool provides access to all course-related data, leveraging the course ID or any unique property value specified.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-410/{courseId}".format(courseId=course_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": include_properties, + "propertiesWithHistory": include_properties_with_history, + "associations": retrieve_associated_object_types, + "archived": return_only_archived, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def delete_course( + context: ToolContext, + course_id: Annotated[ + str, + "The unique identifier for the course to be deleted. This identifier is used to locate the specific course in the CRM system.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/0-410/{courseId}'." +]: + """Delete a course by moving it to the recycling bin. + + This tool deletes a specific course in the CRM by moving it to the recycling bin, identified by the provided `courseId`. Use this when you need to remove a course from the CRM records.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-410/{courseId}".format(courseId=course_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def update_hubspot_course( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + course_identifier: Annotated[ + str | None, + "The unique identifier for the HubSpot course. It can be the internal course ID or a unique property value specified by `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The property name with unique values for identifying the object to update. Use it if not using `courseId`. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/0-410/{courseId}'." +]: + """Update specific properties of a HubSpot course object. + + Use this tool to perform a partial update on a course object in HubSpot CRM. Update is identified by either the `{courseId}` or a unique property via `idProperty`. Only properties provided will be changed, while read-only or non-existent properties will cause an error. Properties can be cleared by providing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOURSE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not course_identifier: + missing_params.append(("course_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOURSE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOURSE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/{courseId}".format( # noqa: UP032 + courseId=course_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTCOURSE"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def create_batch_of_courses( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/create'." +]: + """Create a batch of courses in CRM. + + Use this tool to add multiple courses at once to HubSpot CRM. Ideal for instances where you need to create several course entries simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOURSES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOURSES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOURSES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFCOURSES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def batch_upsert_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/upsert'." +]: + """Create or update HubSpot CRM records via unique identifier. + + This tool creates or updates HubSpot CRM records based on a unique property identifier specified by the `idProperty` parameter. It is useful for ensuring records are maintained accurately in the CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHUPSERTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHUPSERTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHUPSERTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHUPSERTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.read"])) +async def hubspot_crm_search_objects( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410/search'." +]: + """Search and retrieve objects from HubSpot CRM. + + Use this tool to perform a search for specific objects within the HubSpot CRM. It should be called when you need to find and retrieve detailed information about CRM objects based on search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["HUBSPOTCRMSEARCHOBJECTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["HUBSPOTCRMSEARCHOBJECTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["HUBSPOTCRMSEARCHOBJECTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["HUBSPOTCRMSEARCHOBJECTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.write"])) +async def update_courses_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/update'." +]: + """Update multiple courses in a batch by ID or unique properties. + + Use this tool to update a batch of courses in the CRM system by specifying their internal IDs or unique property values. This is useful for making bulk updates efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECOURSESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECOURSESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECOURSESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECOURSESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.courses.read"])) +async def retrieve_hubspot_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_records: Annotated[ + bool | None, + "Set to true to return only archived records; false to exclude archived records in HubSpot CRM. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/read'." +]: + """Retrieve HubSpot CRM records by ID or unique property. + + This tool retrieves HubSpot CRM records using either the record ID or a custom unique value property specified by the `idProperty`. It's useful for accessing multiple records within the CRM at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-410/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTRECORDS"], + params=remove_none_values({"archived": return_archived_records}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.owners.read"])) +async def retrieve_owners_list( + context: ToolContext, + filter_by_email: Annotated[ + str | None, + "Specify an email address to filter the list of owners returned. Only the owner with this exact email will be retrieved.", # noqa: E501 + ] = None, + include_archived: Annotated[ + bool | None, "Set to true to include archived owners in the retrieved list." + ] = False, + owners_list_limit: Annotated[ + int | None, "The maximum number of owners to return per page. Provide an integer value." + ] = 100, + pagination_cursor_after: Annotated[ + str | None, + "A cursor to get the next page of results, indicating the last result shown from the previous request.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/owners/'."]: + """Retrieve a list of owners from the HubSpot CRM account. + + Use this tool to obtain a paginated list of all owners available in a HubSpot CRM account. This can be useful for managing owner-related data or assignments.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/owners/", + method="GET", + params=remove_none_values({ + "email": filter_by_email, + "after": pagination_cursor_after, + "limit": owners_list_limit, + "archived": include_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.owners.read"])) +async def retrieve_owner_details( + context: ToolContext, + owner_id: Annotated[ + int, "The unique ID of the CRM owner. Use this to retrieve the owner's details." + ], + include_archived: Annotated[ + bool | None, "Set to true to include archived owners in the retrieved details." + ] = False, + owner_id_type: Annotated[ + str | None, "Specify whether the 'ownerId' refers to an 'id' or 'userId'." + ] = "id", +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/owners/{ownerId}'."]: + """Retrieve details of a specific CRM owner by ID. + + This tool retrieves details of a specific owner in the HubSpot CRM using either their 'id' or 'userId'. Use it when you need comprehensive information about a particular CRM owner.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/owners/{ownerId}".format(ownerId=owner_id), # noqa: UP032 + method="GET", + params=remove_none_values({"idProperty": owner_id_type, "archived": include_archived}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def batch_retrieve_hubspot_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specify the type of CRM object to retrieve, such as 'contact', 'deal', or 'company'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + return_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. Use false to include active records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/read_read'.", +]: + """Retrieve HubSpot CRM records using batch read. + + This tool retrieves records from HubSpot CRM by record ID or custom unique property in a batch. Use it when you need to access multiple entities by their specific identifiers. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHRETRIEVEHUBSPOTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["BATCHRETRIEVEHUBSPOTRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["BATCHRETRIEVEHUBSPOTRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/batch/read".format( # noqa: UP032 + objectType=crm_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHRETRIEVEHUBSPOTRECORDS"], + params=remove_none_values({"archived": return_archived_results}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def fetch_hubspot_object_by_id( + context: ToolContext, + object_identifier: Annotated[ + str, + "The unique identifier of the HubSpot CRM object to retrieve. This can be the internal object ID or another unique property value if specified by the `id_property` parameter.", # noqa: E501 + ], + object_type: Annotated[ + str, + "The type of the HubSpot CRM object you want to retrieve. Examples include 'contact', 'company', and 'deal'.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "Specify object types to retrieve associated IDs for, separated by commas. Non-existing associations will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return along with their historical values. Ignored if properties are not present.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. Set to false to include all results.", + ] = False, + return_properties: Annotated[ + list[str] | None, + "List of properties to return for the object. Ignored if not present on the object.", + ] = None, + unique_property_name: Annotated[ + str | None, "Specify the property name that uniquely identifies the object." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/{objectType}/{objectId}_getById'.", +]: + """Retrieve a HubSpot CRM object using its unique ID. + + Use this tool to fetch the details of a HubSpot CRM object by its unique ID. Specify the object type and optional parameters to control the returned data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId}".format( # noqa: UP032 + objectType=object_type, objectId=object_identifier + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def move_object_to_recycle_bin( + context: ToolContext, + object_id: Annotated[ + str, + "The unique identifier for the CRM object to be moved to the recycling bin. This ID specifies which object within the CRM will be affected.", # noqa: E501 + ], + object_type: Annotated[ + str, "Type of the CRM object to be moved, such as 'contacts', 'companies', etc." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/{objectType}/{objectId}_archive'.", +]: + """Move a CRM object to the recycling bin. + + Use this tool to move a specified CRM object to the recycling bin using its object type and ID. This is useful for archiving or removing unnecessary data in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId}".format( # noqa: UP032 + objectType=object_type, objectId=object_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def modify_hubspot_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + hubspot_object_type: Annotated[ + str | None, + "Specify the type of HubSpot CRM object (e.g., 'contacts', 'companies', 'deals'). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + object_identifier: Annotated[ + str | None, + "The internal ID of the HubSpot object to update. Use a string format. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property for identifying the object. Use when the default object ID isn't used. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/{objectType}/{objectId}_update'.", +]: + """Update specific properties of a HubSpot CRM object. + + Use this tool to perform partial updates on HubSpot CRM objects by specifying the object type and ID. You can update properties by providing new values, but ensure they aren't read-only or non-existent. Clear properties by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["MODIFYHUBSPOTOBJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not hubspot_object_type: + missing_params.append(("hubspot_object_type", "path")) + if not object_identifier: + missing_params.append(("object_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["MODIFYHUBSPOTOBJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["MODIFYHUBSPOTOBJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId}".format( # noqa: UP032 + objectType=hubspot_object_type, objectId=object_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["MODIFYHUBSPOTOBJECT"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def merge_hubspot_objects( + context: ToolContext, + object_id_to_merge: Annotated[ + str, + "The ID of the object to be merged into the primary object. It must be of the same type as the primary object.", # noqa: E501 + ], + object_type_to_merge: Annotated[ + str, "The type of HubSpot CRM object to merge, such as 'contacts' or 'companies'." + ], + primary_object_id: Annotated[ + str, "The ID of the object that will remain after the merge. Provide as a string." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/merge_merge'.", +]: + """Merge two HubSpot CRM objects of the same type. + + Use this tool to merge two objects within HubSpot CRM that have the same object type, such as contacts or companies. It is useful for consolidating duplicate records into a single, unified entry.""" # noqa: E501 + request_data: Any = { + "objectIdToMerge": object_id_to_merge, + "primaryObjectId": primary_object_id, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/merge".format( # noqa: UP032 + objectType=object_type_to_merge + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def archive_hubspot_objects_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + hubspot_object_type: Annotated[ + str | None, + "Specifies the type of HubSpot CRM objects to archive (e.g., 'contacts', 'companies'). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/archive_archive'.", +]: + """Archive a batch of HubSpot CRM objects by ID. + + Use this tool to archive multiple objects in HubSpot CRM by specifying their IDs and object type, such as 'contacts' or 'companies'. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTOBJECTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not hubspot_object_type: + missing_params.append(("hubspot_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTOBJECTSBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTOBJECTSBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/batch/archive".format( # noqa: UP032 + objectType=hubspot_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTOBJECTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def update_hubspot_objects_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "The type of HubSpot CRM object to update, such as 'contacts', 'companies', 'deals', or 'tickets'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/update_update'.", +]: + """Update multiple HubSpot CRM objects in a batch. + + Use this tool to update a batch of objects in HubSpot CRM using internal IDs or unique property values. Useful for synchronizing or modifying multiple CRM records at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/batch/update".format( # noqa: UP032 + objectType=object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTOBJECTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_hubspot_objects_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + hubspot_object_type: Annotated[ + str | None, + "Specifies the type of object to create in HubSpot, such as 'contacts', 'deals', or 'companies'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/create_create'.", +]: + """Create a batch of objects in HubSpot CRM. + + Use this tool to create multiple objects at once in HubSpot CRM. Suitable for handling bulk operations where several objects need to be created simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTOBJECTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not hubspot_object_type: + missing_params.append(("hubspot_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTOBJECTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTOBJECTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/batch/create".format( # noqa: UP032 + objectType=hubspot_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTOBJECTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def update_or_create_hubspot_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specifies the type of CRM object to act upon, such as 'contacts', 'companies', etc. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/upsert'.", +]: + """Create or update HubSpot CRM records in bulk. + + This tool is used to batch upsert records in HubSpot CRM based on a unique identifier. It's ideal for managing large datasets where records may need to be created or updated if they already exist. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEORCREATEHUBSPOTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEORCREATEHUBSPOTRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEORCREATEHUBSPOTRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/batch/upsert".format( # noqa: UP032 + objectType=crm_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEORCREATEHUBSPOTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_hubspot_objects_page( + context: ToolContext, + object_type: Annotated[ + str, + "Specify the type of CRM object to retrieve, such as 'contacts', 'companies', or 'deals'.", + ], + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated object types to retrieve associated IDs for. Ignored if associations do not exist.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token used to retrieve the next page of results. Obtained from the `paging.next.after` property of a previous response.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List the properties to return with their historical values in the CRM objects.", + ] = None, + requested_properties: Annotated[ + list[str] | None, + "List of properties to include in the response. Ignored if not present on the object(s).", + ] = None, + return_archived_results_only: Annotated[ + bool | None, "Return only the archived results if set to true." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/{objectType}_getPage'." +]: + """Retrieve a page of HubSpot CRM objects. + + Use this tool to read a page of objects from HubSpot CRM. Specify the desired properties through the `properties` query parameter to control the returned data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/{objectType}".format(objectType=object_type), # noqa: UP032 + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": requested_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_results_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def create_crm_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specify the type of CRM object to create, such as 'contact', 'company', or 'deal'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/{objectType}_create'." +]: + """Create a CRM object and retrieve its details. + + This tool creates a new CRM object in HubSpot with specified properties and returns the object, including its ID. Use it to add contacts, companies, deals, etc., to your HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECRMOBJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMOBJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMOBJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}".format(objectType=crm_object_type), # noqa: UP032 + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECRMOBJECT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def search_hubspot_objects( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "Specify the type of object to search for in HubSpot, such as contacts, companies, or deals. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/search_doSearch'.", +]: + """Perform a search on HubSpot CRM objects by type. + + Use this tool to search for objects in HubSpot CRM by specifying the object type. It helps in locating contacts, companies, deals, and other entities based on defined criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTOBJECTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTOBJECTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTOBJECTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/{objectType}/search".format( # noqa: UP032 + objectType=object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTOBJECTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def update_multiple_deals( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/update_update'." +]: + """Update multiple deals in the CRM system. + + This tool updates multiple deals using their internal IDs or unique property values in the CRM. It should be called when you need to modify several deals at once within the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEDEALS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEDEALS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEDEALS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEDEALS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.read"])) +async def search_deals( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3/search_doSearch'." +]: + """Search for deals using specified criteria and filters. + + This tool searches for deals in the HubSpot CRM using the provided criteria and filters. It should be called when there's a need to find deals that match specific conditions. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHDEALS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHDEALS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHDEALS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHDEALS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def create_or_update_hubspot_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/upsert_upsert'." +]: + """Create or update HubSpot CRM records using unique properties. + + This tool is used to create or update HubSpot CRM records by leveraging unique property values for identification. It ensures that records are upserted based on the provided unique identifier. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def archive_multiple_deals( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/archive_archive'.", +]: + """Archive multiple deals using their IDs in HubSpot CRM. + + This tool is used to archive multiple deals in HubSpot CRM by providing their IDs. It should be called when there is a need to batch archive deals efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEDEALS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEDEALS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEDEALS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLEDEALS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.read"])) +async def retrieve_crm_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + retrieve_only_archived_records: Annotated[ + bool | None, + "Set to true to retrieve only archived CRM records. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/read_read'." +]: + """Retrieve CRM records by ID or custom unique property. + + This tool retrieves CRM records using either their record ID or a custom unique value property specified by the `idProperty` parameter. It is useful for accessing detailed information about specific records stored in the CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVECRMRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVECRMRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVECRMRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVECRMRECORDS"], + params=remove_none_values({"archived": retrieve_only_archived_records}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.read"])) +async def get_hubspot_deal_by_id( + context: ToolContext, + deal_id: Annotated[str, "The unique identifier of the deal to retrieve from HubSpot CRM."], + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. Ignored if associations do not exist.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Specify properties to return with their history of values. Use a comma-separated list.", + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + return_properties: Annotated[ + list[str] | None, + "List of properties to be returned in the response. Ignored if not present on the object.", + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the unique property name used to identify the deal. It defaults to an internal object ID if not provided.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-3/{dealId}_getById'." +]: + """Retrieve HubSpot CRM deal information by Deal ID. + + Use this tool to fetch detailed information about a specific deal in HubSpot CRM using the deal's unique ID. The response includes properties specified by the user.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-3/{dealId}".format(dealId=deal_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def archive_deal_in_hubspot( + context: ToolContext, + deal_id: Annotated[str, "The unique identifier of the deal to be archived in HubSpot CRM."], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/0-3/{dealId}_archive'." +]: + """Archives a specific deal in HubSpot CRM. + + Use this tool to move a deal identified by `dealId` to the recycling bin in HubSpot CRM, effectively archiving it.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-3/{dealId}".format(dealId=deal_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def update_hubspot_deal( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + deal_identifier: Annotated[ + str | None, + "The unique identifier of the deal to be updated in HubSpot CRM. Can be internal ID or unique property value. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property to identify the deal instead of `dealId`. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/0-3/{dealId}_update'." +]: + """Update a specific deal in HubSpot CRM. + + Use this tool to perform a partial update on a deal in HubSpot CRM by specifying the deal's internal ID or a unique property value. Only existing properties can be updated, and read-only properties will not be accepted. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTDEAL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not deal_identifier: + missing_params.append(("deal_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTDEAL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTDEAL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/{dealId}".format(dealId=deal_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTDEAL"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def create_multiple_deals( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/create_create'." +]: + """Create multiple deals in HubSpot CRM in one request. + + Use this tool to batch create multiple deals in HubSpot CRM efficiently. It should be called when you need to add several deals at once, reducing the number of individual requests. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMULTIPLEDEALS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMULTIPLEDEALS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMULTIPLEDEALS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEMULTIPLEDEALS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.read"])) +async def get_deals_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for, separated by commas. If associations don't exist, they're ignored.", # noqa: E501 + ] = None, + deal_properties: Annotated[ + list[str] | None, + "List the properties to include in the response as a comma-separated string. Ignored if not present.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, "The token for the paging cursor to retrieve the next page of results." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of deal properties for which historical values are returned. Usage reduces max results per request.", # noqa: E501 + ] = None, + results_limit_per_page: Annotated[ + int | None, "The maximum number of deals to display per page, as an integer." + ] = 10, + return_archived_only: Annotated[ + bool | None, "Set to true to return only archived results; false to include active results." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-3_getPage'."]: + """Read a page of deals from the CRM system. + + Use this tool to retrieve a page of deals from HubSpot CRM. You can control the information returned by specifying desired properties through query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-3", + method="GET", + params=remove_none_values({ + "limit": results_limit_per_page, + "after": paging_cursor_token, + "properties": deal_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def create_hubspot_deal( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3_create'."]: + """Create a new deal in HubSpot CRM. + + Use this tool to create a new deal in HubSpot CRM by specifying the necessary properties. It returns the created deal object along with its unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTDEAL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTDEAL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTDEAL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-3", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTDEAL"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.deals.write"])) +async def merge_deals( + context: ToolContext, + deal_id_to_merge: Annotated[str, "The ID of the deal to be merged into the primary deal."], + primary_deal_id: Annotated[str, "The ID of the primary deal that will remain after merging."], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-3/merge_merge'." +]: + """Combine two deals into a single unified deal in HubSpot CRM. + + Use this tool to merge two deals of the same type into one within HubSpot CRM. It is useful when consolidating duplicate or related deals into a single entry.""" # noqa: E501 + request_data: Any = {"objectIdToMerge": deal_id_to_merge, "primaryObjectId": primary_deal_id} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-3/merge", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.dealsplits.read_write"])) +async def manage_deal_splits( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/deals/splits/batch/upsert_upsert'.", +]: + """Create or replace deal splits for specific deals. + + This tool is used to create or update deal splits for the specified deal IDs. The deal split percentages must add up to 100% and can have up to 8 decimal places. It is useful for managing deal contributions among different stakeholders. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["MANAGEDEALSPLITS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["MANAGEDEALSPLITS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["MANAGEDEALSPLITS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/deals/splits/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["MANAGEDEALSPLITS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.dealsplits.read_write"])) +async def read_batch_deal_splits( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/deals/splits/batch/read_read'.", +]: + """Fetch a batch of deal split objects by deal ID. + + This tool reads a batch of deal split objects using their associated deal object internal IDs, allowing access to multiple deal splits in one request. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["READBATCHDEALSPLITS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["READBATCHDEALSPLITS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["READBATCHDEALSPLITS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/deals/splits/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["READBATCHDEALSPLITS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def search_discounts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts/search'." +]: + """Search for discounts in the HubSpot CRM. + + Use this tool to search for discount records in the HubSpot CRM. It is useful when you need to find specific discounts based on certain criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHDISCOUNTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHDISCOUNTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHDISCOUNTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHDISCOUNTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_discounts_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/update'." +]: + """Update multiple discounts by ID or unique properties. + + Use this tool to update a batch of discounts in HubSpot CRM by specifying internal IDs or unique property values. It is suitable for scenarios where multiple discount records need to be updated simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def retrieve_discount_details( + context: ToolContext, + discount_identifier: Annotated[ + str, + "The unique identifier for the discount object to retrieve. This can either be the internal ID or a value of a unique property specified by `idProperty`.", # noqa: E501 + ], + archived_results_only: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to retrieve along with their value history. Ignored if properties are missing.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to return in response. Ignored if not present on the object.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The property name for uniquely identifying the discount object. Use when the property value is not the default ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/discounts/{discountId}'." +]: + """Retrieve details of a discount by its ID. + + Use this tool to get detailed information about a specific discount object by providing its ID. The tool allows customization of returned properties through query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/discounts/{discountId}".format( # noqa: UP032 + discountId=discount_identifier + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": archived_results_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def delete_discount( + context: ToolContext, + discount_identifier: Annotated[ + str, "The unique identifier of the discount object to delete and move to the recycling bin." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/discounts/{discountId}'.", +]: + """Delete a discount and move it to the recycling bin. + + Use this tool to delete a discount object in HubSpot CRM by moving it to the recycling bin. Call it when you need to remove discounts identified by a specific discount ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/discounts/{discountId}".format( # noqa: UP032 + discountId=discount_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_discount_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + discount_identifier: Annotated[ + str | None, + "The unique identifier for the discount object. This can be the internal ID or a unique property specified by `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property to identify the discount object. Use this instead of the internal discount ID if needed. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/discounts/{discountId}'." +]: + """Update specific properties of a discount in HubSpot CRM. + + Use this tool to perform a partial update on a discount object in HubSpot CRM. Specify the discount using its internal ID or by a unique property using `idProperty`. Only overwrite existing properties. Errors occur with read-only or non-existent properties. Clear properties by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not discount_identifier: + missing_params.append(("discount_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTDETAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTDETAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/{discountId}".format( # noqa: UP032 + discountId=discount_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEDISCOUNTDETAILS"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_batch_discounts_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/create'." +]: + """Create a batch of discounts in HubSpot. + + Use this tool to create multiple discounts simultaneously in HubSpot CRM. It should be called when batch creation of discounts is needed, providing an efficient way to manage discount entries. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHDISCOUNTSHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEBATCHDISCOUNTSHUBSPOT"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEBATCHDISCOUNTSHUBSPOT"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHDISCOUNTSHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def upsert_discount_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/upsert'." +]: + """Create or update discount records in HubSpot CRM. + + This tool allows the creation or update of discount records in HubSpot CRM using unique property values specified by the `idProperty` query parameter. It is useful for ensuring that discount data is up-to-date and accurately maintained. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTDISCOUNTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTDISCOUNTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTDISCOUNTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTDISCOUNTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def archive_discounts_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/archive'." +]: + """Archive a batch of discounts by their IDs in HubSpot CRM. + + This tool is used to archive multiple discount objects in HubSpot CRM by providing their IDs. It should be called when there's a need to remove or deactivate several discounts at once for organizational or business purposes. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEDISCOUNTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEDISCOUNTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEDISCOUNTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEDISCOUNTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def get_hubspot_discounts( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Unknown associations will be ignored.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, "The maximum number of results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The cursor token for pagination. Use the token from the last successfully read resource to fetch the next page.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history; reduces number of discounts returned per request.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to return only archived discounts, false to include all." + ] = False, + returned_discount_properties: Annotated[ + list[str] | None, + "List of properties to include in the response. Comma-separated, ignored if not present.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/discounts'."]: + """Retrieve a page of discounts from HubSpot CRM. + + Use this tool to read a page of discounts from HubSpot CRM. You can control the returned data using the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/discounts", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": returned_discount_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_discount( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts'."]: + """Creates a discount and returns its details. + + Use this tool to create a new discount with specified properties in HubSpot CRM. It returns the created discount object along with its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEDISCOUNT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEDISCOUNT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEDISCOUNT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEDISCOUNT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def retrieve_discount_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + archived: Annotated[ + bool | None, + "Set to true to return only archived results. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/read'." +]: + """Retrieve discount records by ID or custom property. + + This tool retrieves discount records from HubSpot CRM by specifying record IDs or a unique custom property. Use it to fetch detailed information about discounts in a batch. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEDISCOUNTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEDISCOUNTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEDISCOUNTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/discounts/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEDISCOUNTRECORDS"], + params=remove_none_values({"archived": archived}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_batch_of_emails( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/create_create'.", +]: + """Create a batch of emails with specified properties. + + This tool is used to create multiple emails at once in a batch, using specified properties, and returns the details of the created email objects. Ideal for situations where several emails need to be generated and saved in the CRM system at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFEMAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFEMAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFEMAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFEMAILS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_emails_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. If any specified associations don't exist, they will be ignored.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "The maximum number of email results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token for the next page of results, from the `paging.next.after` field of the previous response.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history of previous values. Reduces maximum emails per request.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to retrieve only archived emails." + ] = False, + returned_email_properties: Annotated[ + list[str] | None, + "List the email properties to be included in the response. Specify as an array of strings representing the desired properties.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/emails_getPage'." +]: + """Retrieve a page of emails from HubSpot CRM. + + This tool reads a page of emails from HubSpot CRM. You can control which email properties are returned by using the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/emails", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": returned_email_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_hubspot_email( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/emails_create'." +]: + """Create an email in HubSpot CRM and retrieve its details. + + Use this tool to create a new email in HubSpot CRM by specifying certain properties. It returns the created email object along with its ID, facilitating the organization and tracking of email records within the CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTEMAIL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTEMAIL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTEMAIL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTEMAIL"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_email_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + only_archived_records: Annotated[ + bool | None, + "Set to true to return only archived email records from HubSpot CRM. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/read_read'." +]: + """Retrieve email records by ID or custom property. + + This tool retrieves email records from HubSpot CRM by providing record IDs or using a custom unique value property. It should be called when you need details about specific email records stored within HubSpot. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEEMAILRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEEMAILRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEEMAILRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEEMAILRECORDS"], + params=remove_none_values({"archived": only_archived_records}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_or_update_hubspot_emails( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/upsert_upsert'.", +]: + """Create or update HubSpot email records in batch. + + This tool allows you to create or update email records in HubSpot's CRM by using a unique property value to identify the records. It's useful when you need to manage email data efficiently by ensuring existing records are updated and new ones are created where needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTEMAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTEMAILS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTEMAILS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEORUPDATEHUBSPOTEMAILS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_email_by_id( + context: ToolContext, + email_id: Annotated[ + str, "The unique ID or property value of the email object to be retrieved." + ], + object_types_for_associated_ids: Annotated[ + list[str] | None, + "List the object types to retrieve associated IDs. If no associations exist, they will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Comma-separated property names to include their history of previous values in the response. Non-existent properties will be ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. Set to false to return active results.", + ] = False, + returned_properties: Annotated[ + list[str] | None, + "A list of properties to return for the email object. Properties not present on the object will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the property name that holds unique values for the email object to be retrieved.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/emails/{emailId}_getById'." +]: + """Retrieve email object details using its ID. + + Use this tool to get detailed information about an email object in HubSpot CRM using its unique ID. You can control the output via query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/emails/{emailId}".format(emailId=email_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": returned_properties, + "propertiesWithHistory": properties_with_history, + "associations": object_types_for_associated_ids, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def delete_email( + context: ToolContext, + email_id: Annotated[str, "The unique identifier of the email to be archived in HubSpot CRM."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/emails/{emailId}_archive'.", +]: + """Move an email to the recycling bin using its ID. + + This tool moves an email identified by `emailId` to the recycling bin in HubSpot CRM. It should be used when an email needs to be archived or deleted from active view.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/emails/{emailId}".format(emailId=email_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_email_in_hubspot_crm( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + email_identifier: Annotated[ + str | None, + "The unique identifier for the email object, either the internal ID or a unique property value. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Name of a unique property for identifying the email object, used instead of default ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/emails/{emailId}_update'.", +]: + """Updates an email object in HubSpot CRM with new property values. + + This tool updates properties of an email object in HubSpot CRM, identified by the internal ID or a unique property. Read-only or nonexistent properties will cause errors, and properties can be cleared by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEEMAILINHUBSPOTCRM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not email_identifier: + missing_params.append(("email_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEEMAILINHUBSPOTCRM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEEMAILINHUBSPOTCRM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/{emailId}".format( # noqa: UP032 + emailId=email_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEEMAILINHUBSPOTCRM"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_emails_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/archive_archive'.", +]: + """Archive a batch of emails by their IDs. + + Use this tool to archive multiple emails in the HubSpot CRM by providing their unique IDs. Useful for organizing or cleaning up email records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEEMAILSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEEMAILSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEEMAILSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEEMAILSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_batch_emails( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/update_update'.", +]: + """Update a batch of emails by their IDs or unique properties. + + Use this tool to update multiple emails in bulk using their internal IDs or unique property values in HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHEMAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHEMAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHEMAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHEMAILS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_emails( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/emails/search_doSearch'." +]: + """Search for emails based on specified query parameters. + + Use this tool to perform a search for emails in the CRM system, returning results that match the given criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHEMAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHEMAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHEMAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/emails/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHEMAILS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.objects.contacts.read", "crm.objects.feedback_submissions.read"], + ) +) +async def get_feedback_submission_by_id( + context: ToolContext, + feedback_submission_id: Annotated[ + str, + "The ID of the feedback submission to retrieve details for. This can be the internal object ID or a unique property value specified by `idProperty`.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. If nonexistent, they will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Comma-separated list of properties to return with their history of previous values. Ignored if not present on the object.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to true to return only archived results, false for active ones." + ] = False, + return_properties: Annotated[ + list[str] | None, + "List of properties to return in the response. Non-existent properties will be ignored.", + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property whose values are unique for the feedback submission object.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}_getById'.", # noqa: E501 +]: + """Retrieve feedback submission details by ID. + + Use this tool to obtain details of a feedback submission using its ID. You can specify additional properties to control the details returned.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}".format( # noqa: UP032 + feedbackSubmissionId=feedback_submission_id + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.objects.contacts.read", "crm.objects.feedback_submissions.read"], + ) +) +async def search_feedback_submissions( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/feedback_submissions/search_doSearch'.", +]: + """Search for feedback submissions in HubSpot CRM. + + This tool allows you to search for feedback submissions within the HubSpot CRM, helping you find specific feedback entries based on your search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHFEEDBACKSUBMISSIONS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHFEEDBACKSUBMISSIONS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHFEEDBACKSUBMISSIONS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/feedback_submissions/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHFEEDBACKSUBMISSIONS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.objects.contacts.read", "crm.objects.feedback_submissions.read"], + ) +) +async def retrieve_feedback_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived feedback submission records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/feedback_submissions/batch/read_read'.", +]: + """Retrieve feedback submission records by ID or custom properties. + + Use this tool to fetch feedback submission records from HubSpot CRM using either a record ID or a custom unique value property (`idProperty`). + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEFEEDBACKRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEFEEDBACKRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEFEEDBACKRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/feedback_submissions/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEFEEDBACKRECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.objects.contacts.read", "crm.objects.feedback_submissions.read"], + ) +) +async def get_feedback_submissions( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "Comma separated list of object types to retrieve associated IDs for, like 'contacts' or 'companies'. Ignored if nonexistent.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, "The token of the last read resource for fetching the next page of results." + ] = None, + properties_to_return: Annotated[ + list[str] | None, + "List of properties to return for each feedback submission. Comma separated. Ignores non-existing properties.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of property names whose history of values should be returned. Properties not present will be ignored. Reduces the maximum number of submissions per request.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived feedback submissions; false to include both archived and active submissions.", # noqa: E501 + ] = False, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/feedback_submissions_getPage'.", +]: + """Retrieve a page of feedback submissions from the CRM. + + This tool retrieves a page of feedback submissions from HubSpot CRM. It allows control over the returned data using the 'properties' query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/feedback_submissions", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def get_fee_details( + context: ToolContext, + fee_identifier: Annotated[ + str, + "The unique identifier for the fee object to retrieve. It can be the internal object ID or a value from a unique property specified by the `idProperty` parameter.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + only_return_archived_results: Annotated[ + bool | None, "Set to true to retrieve only archived results. False for non-archived." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history of previous values, specified as strings. Non-existent properties will be ignored.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "A list of properties to return for the fee object. Any non-existent properties will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "Specify the property name with unique values for the fee object." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/fees/{feeId}'." +]: + """Retrieve information about a specific fee by ID. + + This tool is used to get detailed information about a fee object in HubSpot CRM using the fee's unique identifier. It can control the returned data with optional query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/fees/{feeId}".format(feeId=fee_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_return_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def delete_fee_object( + context: ToolContext, + fee_id_to_delete: Annotated[ + str, "The unique identifier of the fee object to be deleted in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/fees/{feeId}'." +]: + """Move a fee object to the recycling bin using its fee ID. + + Call this tool to delete a fee object in HubSpot CRM. Useful for removing unwanted or outdated fee records by providing the specific fee ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/fees/{feeId}".format(feeId=fee_id_to_delete), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_fee_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + fee_identifier: Annotated[ + str | None, + "The ID or unique property value that identifies the fee object to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the unique property name to identify the object instead of the default ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/fees/{feeId}'." +]: + """Update specific details of a fee in the CRM. + + This tool performs a partial update of a fee record identified by its internal ID or another unique property. Use it to overwrite existing property values or clear them by passing an empty string. Be aware that read-only or non-existent properties will cause an error. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEFEEDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not fee_identifier: + missing_params.append(("fee_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEFEEDETAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEFEEDETAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/{feeId}".format(feeId=fee_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEFEEDETAILS"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def upsert_hubspot_fees( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/upsert'." +]: + """Create or update fee records in HubSpot CRM. + + This tool should be called to create new fee records or update existing ones in HubSpot CRM. It uses a unique property value specified by the `idProperty` query parameter to identify records. Ideal for batch processing of fee information. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTFEES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTFEES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTFEES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTFEES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def get_crm_fees( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for. Ignored if associations don't exist.", # noqa: E501 + ] = None, + fee_properties_to_return: Annotated[ + list[str] | None, + "List of properties to be returned in the response. If a property is not present, it will be ignored.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, "The maximum number of fees to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token used to retrieve the next page of results. Use the token returned in `paging.next.after` from a previous response.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history. Reduces max number of fees per request.", + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/fees'."]: + """Fetch a list of fees from the CRM. + + Retrieve a page of fee objects from the CRM, allowing control over returned properties through query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/fees", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": fee_properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_fee_in_crm( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees'."]: + """Create a fee in the CRM and receive the object's details. + + Call this tool to add a new fee in the CRM system using specified properties. It returns the newly created fee object along with its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEFEEINCRM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEFEEINCRM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEFEEINCRM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEFEEINCRM"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_batch_fees( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/create'." +]: + """Create a batch of fees in HubSpot CRM. + + This tool allows the creation of multiple fees in a single batch within HubSpot CRM. It should be called when there is a need to add a set of new fees to the CRM system efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHFEES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHFEES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHFEES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHFEES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def search_fees_in_crm( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees/search'." +]: + """Search for fees in HubSpot CRM. + + Use this tool to search for fees in the HubSpot CRM database. It should be called when you need to find specific fee records based on search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHFEESINCRM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHFEESINCRM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHFEESINCRM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHFEESINCRM"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_batch_fees( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/update'." +]: + """Update multiple fees by internal ID or unique properties. + + Use this tool to update a batch of fees in HubSpot CRM by specifying internal IDs or unique property values. Call this tool when you need to make bulk updates to fee records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHFEES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHFEES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHFEES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHFEES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def archive_fees_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/archive'." +]: + """Archives a batch of fees by their IDs in HubSpot CRM. + + Use this tool to archive multiple fee records in HubSpot CRM by providing their IDs. Ideal for managing outdated or unnecessary fee entries efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEFEESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEFEESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEFEESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEFEESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def retrieve_fee_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived fee records. False to return active records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/read'." +]: + """Retrieve fee records by ID or custom property. + + Use this tool to retrieve fee records from HubSpot CRM by specifying record IDs or using a custom unique value property. Useful for accessing detailed record information in batch. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEFEERECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEFEERECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEFEERECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/fees/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEFEERECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def create_goal_targets_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/create_create'.", +]: + """Batch create multiple goal targets in HubSpot CRM. + + Use this tool to create multiple goal targets at once in HubSpot CRM. It is suited for managing and setting up several targets simultaneously, aiding in efficient CRM organization. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEGOALTARGETSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEGOALTARGETSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEGOALTARGETSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEGOALTARGETSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.read"])) +async def retrieve_goal_targets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only the archived records. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/read_read'.", +]: + """Retrieve goal target records using record ID or custom value. + + Use this tool to retrieve goal target records from HubSpot CRM by providing either the record ID or a custom unique value property. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEGOALTARGETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEGOALTARGETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEGOALTARGETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEGOALTARGETS"], + params=remove_none_values({"archived": return_only_archived_results}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.read"])) +async def get_goal_target_by_id( + context: ToolContext, + goal_target_id: Annotated[ + str, + "The unique identifier for the goal target object. Can be the internal object ID or a unique property value specified by `idProperty`.", # noqa: E501 + ], + archived_results: Annotated[ + bool | None, "Set to true to return only archived results. Default is false." + ] = False, + associated_object_types: Annotated[ + list[str] | None, + "Specify object types to retrieve associated IDs. If not present, they will be ignored. Use commas to separate multiple types.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Comma-separated properties to return with their value histories. Ignored if properties are absent on the object.", # noqa: E501 + ] = None, + returned_properties: Annotated[ + list[str] | None, "List of properties to return. Ignored if not present on the object." + ] = None, + unique_property_name: Annotated[ + str | None, "The property name used as a unique identifier for the goal target object." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/goal_targets/{goalTargetId}_getById'.", +]: + """Retrieve goal target object details using its ID. + + This tool retrieves details of a goal target object identified by `goalTargetId`. It can use either the default internal object ID or any unique property value specified by the `idProperty` query parameter. The `properties` query parameter can control what information is returned.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId}".format( # noqa: UP032 + goalTargetId=goal_target_id + ), + method="GET", + params=remove_none_values({ + "properties": returned_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def delete_goal_target( + context: ToolContext, + goal_target_id: Annotated[ + str, + "The unique identifier for the goal target to be deleted. Required to specify which target to move to the recycling bin.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/goal_targets/{goalTargetId}_archive'.", +]: + """Deletes a goal target by its ID to the recycling bin. + + Use this tool to delete a specific goal target by providing its unique ID. This action will move the target to the recycling bin, allowing for potential recovery.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId}".format( # noqa: UP032 + goalTargetId=goal_target_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def update_goal_target( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + goal_target_id: Annotated[ + str | None, + "The internal ID of the goal target to update. Use this to specify which goal target object to modify. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property for the goal target object used for identification or update. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/goal_targets/{goalTargetId}_update'.", +]: + """Update properties of a HubSpot goal target. + + Use this tool to perform a partial update on a HubSpot goal target object using its ID or a unique property. This is useful for editing specific properties of a goal target. Ensure only modifiable properties are included, as read-only or non-existent properties will cause errors. Clear properties by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEGOALTARGET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not goal_target_id: + missing_params.append(("goal_target_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEGOALTARGET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEGOALTARGET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId}".format( # noqa: UP032 + goalTargetId=goal_target_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEGOALTARGET"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.read"])) +async def search_goal_targets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/search_doSearch'.", +]: + """Search for goal targets using specified criteria. + + This tool allows searching for goal targets within the HubSpot CRM based on specified criteria. Call this tool when you need to locate specific goal targets or retrieve a list based on certain parameters. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHGOALTARGETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHGOALTARGETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHGOALTARGETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHGOALTARGETS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def archive_goal_targets_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/archive_archive'.", +]: + """Archive multiple goal targets using their IDs in one batch. + + This tool allows users to archive multiple goal targets in HubSpot CRM by providing their IDs. It's useful for efficiently managing goal targets that are no longer needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEGOALTARGETSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEGOALTARGETSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEGOALTARGETSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEGOALTARGETSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def update_batch_goal_targets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/update_update'.", +]: + """Update multiple goal targets in HubSpot CRM. + + Use this tool to update several goal targets simultaneously in HubSpot CRM using their internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHGOALTARGETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHGOALTARGETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHGOALTARGETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHGOALTARGETS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def upsert_goal_targets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/upsert_upsert'.", +]: + """Create or update goal target records in HubSpot CRM. + + This tool allows creation or updating of goal target records in HubSpot CRM using a unique property for identification. Use it to ensure goal targets are up-to-date. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTGOALTARGETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTGOALTARGETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTGOALTARGETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTGOALTARGETS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.read"])) +async def get_goal_targets( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for, ignored if non-existent.", + ] = None, + paging_cursor_token: Annotated[ + str | None, + "Token of the last successfully read item. Use it for fetching the next page of results.", + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Comma-separated properties to return with their history of previous values. Reduces the max number of goals retrievable in one request.", # noqa: E501 + ] = None, + results_per_page_limit: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + return_only_archived: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + returned_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to return in the response. Ignored if absent on requested objects.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/goal_targets_getPage'." +]: + """Retrieve a page of goal targets from HubSpot CRM. + + Use this tool to access a specific page of goal targets within HubSpot CRM. You can control the data returned by specifying the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/goal_targets", + method="GET", + params=remove_none_values({ + "limit": results_per_page_limit, + "after": paging_cursor_token, + "properties": returned_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.goals.write"])) +async def create_goal_target( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/goal_targets_create'." +]: + """Create a goal target in HubSpot CRM. + + Use this tool to create a new goal target in the HubSpot CRM system. It takes the properties for the goal target and returns a copy of the created object along with its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEGOALTARGET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEGOALTARGET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEGOALTARGET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/goal_targets", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEGOALTARGET"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def create_batch_of_invoices( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/create_create'.", +]: + """Create a batch of invoices swiftly. + + Use this tool to create multiple invoices at once in HubSpot CRM when bulk billing is required. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFINVOICES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFINVOICES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFINVOICES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFINVOICES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.read"])) +async def search_invoices( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/invoices/search_doSearch'.", +]: + """Find invoices in the HubSpot CRM. + + Use this tool to search and retrieve invoices from the HubSpot CRM based on specific criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHINVOICES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHINVOICES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHINVOICES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHINVOICES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.read"])) +async def retrieve_invoice_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only results that have been archived from HubSpot CRM. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/read_read'.", +]: + """Retrieve invoice records by ID or custom property. + + Use this tool to obtain invoice records by specifying the record ID or using a custom unique value property. Ideal for accessing specific invoice data within the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEINVOICERECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEINVOICERECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEINVOICERECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEINVOICERECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.read"])) +async def get_invoice_by_id( + context: ToolContext, + invoice_identifier: Annotated[ + str, + "The unique identifier for the invoice. This can be the internal object ID or any unique property value as specified by the `id_property`.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for, separated by commas. Ignored if associations don't exist.", # noqa: E501 + ] = None, + historical_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to return along with their history of previous values.", + ] = None, + requested_properties: Annotated[ + list[str] | None, + "List of properties to be returned in the response for the specified invoice. Properties not present on the object will be ignored.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, + "Specify `True` to return only archived results. `False` returns both archived and non-archived results.", # noqa: E501 + ] = False, + unique_identifier_property: Annotated[ + str | None, + "The name of a property whose values uniquely identify the invoice object. Specify this to use a unique property other than the internal object ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/invoices/{invoiceId}_getById'.", +]: + """Retrieve invoice details by ID. + + Fetch invoice information using the unique identifier, `{invoiceId}`. This can include internal object ID or any unique property value specified by the `idProperty` parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId}".format( # noqa: UP032 + invoiceId=invoice_identifier + ), + method="GET", + params=remove_none_values({ + "properties": requested_properties, + "propertiesWithHistory": historical_properties, + "associations": associated_object_types, + "archived": return_archived_only, + "idProperty": unique_identifier_property, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def delete_invoice( + context: ToolContext, + invoice_identifier: Annotated[ + str, "The unique identifier for the invoice to be archived in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/invoices/{invoiceId}_archive'.", +]: + """Archive an invoice by moving it to the recycling bin. + + Use this tool to archive an invoice in HubSpot CRM by moving it to the recycling bin. It is identified by the `{invoiceId}` parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId}".format( # noqa: UP032 + invoiceId=invoice_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def update_invoice_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + invoice_identifier: Annotated[ + str | None, + "Unique identifier for the invoice, either the internal ID or specified unique property value, to update in HubSpot CRM. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Name of the unique property for identifying the invoice object. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/invoices/{invoiceId}_update'.", +]: + """Update invoice details in HubSpot CRM. + + Use this tool to perform a partial update of an invoice in HubSpot CRM. The invoice can be identified by its internal ID or a unique property. Only existing properties with provided values will be updated, and any read-only or non-existent properties will cause an error. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEINVOICEDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not invoice_identifier: + missing_params.append(("invoice_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEINVOICEDETAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEINVOICEDETAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId}".format( # noqa: UP032 + invoiceId=invoice_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEINVOICEDETAILS"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def update_invoices_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/update_update'.", +]: + """Updates multiple invoices in the HubSpot CRM. + + This tool updates a batch of invoices in HubSpot CRM using either internal IDs or unique property values. It should be called when you need to modify multiple invoice records simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEINVOICESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEINVOICESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEINVOICESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEINVOICESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.read"])) +async def retrieve_invoices( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types whose associated IDs should be retrieved. Ignored if associations do not exist.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, "The maximum number of invoice results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token for the last successfully read resource to retrieve the next page of results.", + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List properties to return with their historical values. Reduced invoice limit per request.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to true to return only archived invoices; false for all invoices." + ] = False, + specified_properties: Annotated[ + list[str] | None, + "List of invoice property names to return. Ignored if properties are not present on the objects.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/invoices_getPage'." +]: + """Retrieve a page of invoices from HubSpot CRM. + + Use this tool to read a page of invoices from HubSpot CRM. You can control the return data by specifying desired properties through the query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/invoices", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": specified_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def create_hubspot_invoice( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/invoices_create'." +]: + """Create an invoice in HubSpot CRM and retrieve its details. + + This tool creates a new invoice in HubSpot CRM using the provided properties and returns the created invoice's details, including its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTINVOICE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTINVOICE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTINVOICE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTINVOICE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def upsert_hubspot_invoices( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/upsert_upsert'.", +]: + """Create or update HubSpot invoice records in batch. + + This tool creates or updates HubSpot invoice records using a unique property identifier specified by the `idProperty` parameter. It should be called when you need to ensure invoice records are accurately reflected in HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTINVOICES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTINVOICES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTINVOICES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTINVOICES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.invoices.write"])) +async def archive_invoices_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/archive_archive'.", +]: + """Archive a batch of invoices by their IDs. + + Use this tool to archive multiple invoices at once by providing their IDs. It should be called when there is a need to organize or hide invoices that are no longer active or needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEINVOICESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEINVOICESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEINVOICESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/invoices/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEINVOICESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.read"])) +async def retrieve_lead_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Return only results that have been archived. Set to 'true' to filter by archived records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/read_read'." +]: + """Retrieve lead records by ID or custom unique property. + + This tool fetches lead records from HubSpot CRM using specified record IDs or a custom unique value property if provided. It is useful for obtaining detailed information on leads based on specific identifiers. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVELEADRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVELEADRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVELEADRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVELEADRECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.read"])) +async def search_crm_leads( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/leads/search_doSearch'." +]: + """Search for leads in HubSpot CRM. + + This tool searches for leads in the HubSpot CRM. Use it when you want to query and retrieve lead information based on specific criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCRMLEADS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCRMLEADS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCRMLEADS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCRMLEADS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.read"])) +async def get_hubspot_leads_page( + context: ToolContext, + archived_leads_only: Annotated[ + bool | None, + "Return only leads that have been archived. Set to true to include only archived leads, false to exclude them.", # noqa: E501 + ] = False, + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for; ignored if non-existent.", # noqa: E501 + ] = None, + lead_properties_to_return: Annotated[ + list[str] | None, + "An array of the property names to include in the lead details response. Unavailable properties will be ignored.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, "The cursor token to continue retrieving leads from where the last page ended." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties whose historical values will be returned. Reduce max leads per request.", # noqa: E501 + ] = None, + results_limit_per_page: Annotated[ + int | None, "Defines the maximum number of leads to display per page." + ] = 10, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/leads_getPage'." +]: + """Retrieve a page of leads from HubSpot CRM. + + This tool fetches a page of leads from the HubSpot CRM. It allows you to control the properties returned for the leads through query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/leads", + method="GET", + params=remove_none_values({ + "limit": results_limit_per_page, + "after": paging_cursor_token, + "properties": lead_properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": archived_leads_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.write"])) +async def create_lead_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/leads_create'." +]: + """Create a new lead in HubSpot CRM. + + Use this tool to create a new lead in HubSpot CRM by providing the necessary properties. It returns a copy of the lead object, including the ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATELEADHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATELEADHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATELEADHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATELEADHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.write"])) +async def create_leads_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/create_create'.", +]: + """Create a batch of new leads in HubSpot CRM. + + Use this tool to add multiple new leads to your HubSpot CRM account in one operation. Ideal for onboarding new leads efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATELEADSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATELEADSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATELEADSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATELEADSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.write"])) +async def update_leads_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/update_update'.", +]: + """Update multiple leads in a batch by ID or unique properties. + + Use this tool to update a set of leads in HubSpot CRM using their internal IDs or unique property values. This is useful for making bulk changes efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATELEADSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELEADSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELEADSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATELEADSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.read"])) +async def get_lead_by_id( + context: ToolContext, + lead_identifier: Annotated[ + str, + "The unique identifier for the lead. Typically the internal ID, or a unique property value if specified by `idProperty`.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for, with non-existent associations ignored.", # noqa: E501 + ] = None, + only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results." + ] = False, + return_properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their history of previous values. Comma-separated values should be used. Ignored if properties are not present.", # noqa: E501 + ] = None, + returned_properties: Annotated[ + list[str] | None, + "A list of properties to be returned in the response. Only specified properties present on the lead will be included.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "Specifies a unique property name to identify the lead. Overrides default ID." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/leads/{leadsId}_getById'." +]: + """Retrieve a lead by its unique identifier. + + This tool retrieves detailed information about a lead from HubSpot CRM using a unique identifier. It allows filtering of returned data using optional query parameters such as `idProperty` for specifying unique properties and `properties` for controlling which data is returned.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/leads/{leadsId}".format(leadsId=lead_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": returned_properties, + "propertiesWithHistory": return_properties_with_history, + "associations": associated_object_types, + "archived": only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.write"])) +async def archive_hubspot_lead( + context: ToolContext, + lead_identifier: Annotated[ + str, "The unique identifier for the lead to be archived in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/leads/{leadsId}_archive'.", +]: + """Archive a HubSpot CRM lead by identifier. + + Use this tool to move a HubSpot CRM lead, identified by `leadsId`, to the recycling bin. Ideal for managing and removing leads from active status.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/leads/{leadsId}".format(leadsId=lead_identifier), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.write"])) +async def update_lead_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + lead_identifier: Annotated[ + str | None, + "The internal object ID or unique property value used to identify the lead in HubSpot CRM. Required for updating the lead details. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the name of a unique property to identify the lead, instead of using the internal ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/leads/{leadsId}_update'." +]: + """Update details of a specific lead in HubSpot CRM. + + Use this tool to perform a partial update to the details of a specific lead in the HubSpot CRM. You can specify the lead using their internal object ID or a unique property value. Only provided properties will be updated. This tool should be called when you need to update certain fields of a lead without altering others. Ensure that read-only and non-existent properties are not included, as these will result in an error. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATELEADDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not lead_identifier: + missing_params.append(("lead_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELEADDETAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELEADDETAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads/{leadsId}".format(leadsId=lead_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATELEADDETAILS"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.leads.write"])) +async def archive_leads_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/archive_archive'.", +]: + """Archive a batch of leads by ID in HubSpot CRM. + + Use this tool to archive multiple leads in HubSpot CRM by providing their IDs. Useful for managing large numbers of leads efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVELEADSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVELEADSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVELEADSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/leads/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVELEADSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_association_limit_records( + context: ToolContext, + source_object_type_id: Annotated[ + str, "Specifies the ID of the source object type to check association limits from." + ], + to_object_type_id: Annotated[ + str, "The ID of the target object type for the association limit query." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}'.", # noqa: E501 +]: + """Fetch records near association limits between two objects. + + Use this tool to retrieve records that are close to or have reached the association limits between specified objects in HubSpot CRM. This is useful for monitoring and managing object relationships within the CRM system.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}".format( # noqa: UP032 + fromObjectTypeId=source_object_type_id, toObjectTypeId=to_object_type_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_custom_association_labels_limits( + context: ToolContext, + source_object_type_id: Annotated[ + str | None, + "The unique identifier for the source object type. It specifies which object type the association is coming from in the CRM.", # noqa: E501 + ] = None, + target_object_type_id: Annotated[ + str | None, + "The ID of the target object type to which the association label applies. Specify the target entity in HubSpot CRM.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/associations/labels'." +]: + """Get limits and usage for custom association labels in HubSpot CRM. + + This tool retrieves limits and current usage information for custom association labels within the HubSpot CRM environment. It should be called when you need to understand the constraints or current utilization of these labels.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/associations/labels", + method="GET", + params=remove_none_values({ + "fromObjectTypeId": source_object_type_id, + "toObjectTypeId": target_object_type_id, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def fetch_association_limit_objects( + context: ToolContext, + from_object_type_id: Annotated[ + str, + "Identifier for the 'from' object type whose records' association limits are being queried.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/limits/associations/records/{fromObjectTypeId}/to'.", # noqa: E501 +]: + """Fetch objects approaching association limits for a specified type. + + Use this tool to retrieve objects where the specified 'from' object type has records that are nearing or have reached their association limits in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/associations/records/{fromObjectTypeId}/to".format( # noqa: UP032 + fromObjectTypeId=from_object_type_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.custom.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.custom.read", + "crm.schemas.custom.read", + "crm.objects.custom.write", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + ], + ) +) +async def get_custom_object_limits( + context: ToolContext, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/custom-object-types'." +]: + """Retrieve limits and usage for HubSpot custom object schemas. + + This tool is used to get the limits and usage data for custom object schemas in HubSpot CRM. It's useful for monitoring and managing custom object types and understanding their current usage.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/custom-object-types", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_custom_property_limits( + context: ToolContext, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/custom-properties'." +]: + """Retrieve limits and usage for custom properties per object. + + Use this tool to access the limits and usage statistics for custom properties categorized by object in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/custom-properties", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def retrieve_limit_approaching_records( + context: ToolContext, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/associations/records/from'." +]: + """Retrieve objects nearing or at HubSpot CRM association limits. + + This tool is called to get objects from HubSpot CRM that have records close to or at their association limits. It helps in monitoring and managing association constraints.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/associations/records/from", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_hubspot_crm_limits_records( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/records'."]: + """Retrieve limits and usage for records in HubSpot CRM. + + Use this tool to obtain detailed information about the limits and current usage of various objects within the HubSpot CRM records.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/records", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def pipeline_limits_usage( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/pipelines'."]: + """Retrieve limits and usage for HubSpot CRM pipelines. + + Call this tool to obtain information about the limits and current usage of pipelines in HubSpot CRM. Useful for understanding capacity and utilization of your CRM pipelines.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/pipelines", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def get_calculated_properties_limits( + context: ToolContext, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/limits/calculated-properties'." +]: + """Get limits and usage for calculated properties in HubSpot CRM. + + Call this tool to retrieve overall limits and per object usage for calculated properties in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/limits/calculated-properties", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def retrieve_line_items_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs. Nonexistent associations are ignored.", + ] = None, + include_properties: Annotated[ + list[str] | None, + "List the properties to include in the response, separated by commas. Ignored if not present.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "Sets the maximum number of line items to display per page." + ] = 10, + pagination_cursor_after: Annotated[ + str | None, "The cursor token from the last page to retrieve the next set of results." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of property names to return with their value history. This reduces the max line items per request.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, + "Set to true to return only archived results. False returns non-archived results.", + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/line_items_getPage'." +]: + """Retrieve a page of line items from HubSpot CRM. + + Use this tool to read a specific page of line items from HubSpot CRM. You can control the details returned using the `properties` query parameter to tailor the response to your needs.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/line_items", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": pagination_cursor_after, + "properties": include_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_hubspot_line_item( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/line_items_create'." +]: + """Create a new line item in HubSpot CRM. + + This tool creates a line item in HubSpot CRM with specified properties and returns the complete object, including its ID. Use this when you need to add a line item to HubSpot. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLINEITEM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLINEITEM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLINEITEM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLINEITEM"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def get_line_item_details( + context: ToolContext, + line_item_id: Annotated[ + str, + "The unique ID or property value of the line item to retrieve. This identifies the specific line item in HubSpot CRM.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "Comma separated list of object types to retrieve associated IDs for. Non-existent associations are ignored.", # noqa: E501 + ] = None, + only_return_archived: Annotated[ + bool | None, "Set to True to return only archived results." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their value history. Ignored if not present on the object.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to return. Ignored if not present on the object.", + ] = None, + unique_identifier_property: Annotated[ + str | None, "Specifies a unique property name to identify the line item in HubSpot CRM." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/line_items/{lineItemId}_getById'.", +]: + """Retrieve details of a line item by its ID. + + This tool fetches details of a specific line item from HubSpot CRM using its internal ID or any unique property value. Use this tool to access information about a particular line item, specifying any desired properties to control the response.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId}".format( # noqa: UP032 + lineItemId=line_item_id + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_return_archived, + "idProperty": unique_identifier_property, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def delete_line_item( + context: ToolContext, + line_item_id: Annotated[ + str, "The unique identifier of the line item to be archived or deleted." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/line_items/{lineItemId}_archive'.", +]: + """Moves a specified line item to the recycling bin. + + This tool is used to delete or archive a line item in HubSpot CRM by moving it to the recycling bin. It should be called when a user wants to remove a line item identified by its `lineItemId`.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId}".format( # noqa: UP032 + lineItemId=line_item_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_line_item( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + line_item_id: Annotated[ + str | None, + "The internal ID of the line item to update. This ID identifies the object to be modified. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify a property with unique values to identify the line item instead of using the internal ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/line_items/{lineItemId}_update'.", +]: + """Update properties of a CRM line item using its ID. + + Use this tool to perform a partial update of a CRM line item identified by its internal ID or a unique property value. Only provided properties will be updated, and passing an empty string can clear property values. Make sure not to include read-only or non-existent properties as they will result in errors. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATELINEITEM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not line_item_id: + missing_params.append(("line_item_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELINEITEM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELINEITEM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId}".format( # noqa: UP032 + lineItemId=line_item_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATELINEITEM"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def upsert_line_items_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/upsert_upsert'.", +]: + """Batch create or update line items by unique ID. + + This tool creates or updates line item records in batches using a unique property to identify each item, as specified by the `idProperty` query parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTLINEITEMSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTLINEITEMSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTLINEITEMSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTLINEITEMSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_line_items_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/create_create'.", +]: + """Create a batch of line items in HubSpot CRM. + + Use this tool to create multiple line items at once in HubSpot CRM. Ideal for bulk operations where several line items need to be added simultaneously to the system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATELINEITEMSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATELINEITEMSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATELINEITEMSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATELINEITEMSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_line_items_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/update_update'.", +]: + """Update multiple line items in CRM using internal IDs or unique properties. + + This tool updates a batch of line items in HubSpot CRM. It's useful when needing to modify multiple line items at once using their internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATELINEITEMSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELINEITEMSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATELINEITEMSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATELINEITEMSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def search_line_items( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/line_items/search_doSearch'.", +]: + """Search for line items in HubSpot CRM. + + Use this tool to search for line items within HubSpot CRM. It should be called when you need to retrieve specific line items based on search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHLINEITEMS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHLINEITEMS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHLINEITEMS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHLINEITEMS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def retrieve_batch_line_items( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + retrieve_only_archived: Annotated[ + bool | None, + "Set to true to retrieve only archived line items. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/read_read'.", +]: + """Retrieve batch line item records by ID or custom property. + + Use this tool to retrieve multiple line item records from HubSpot CRM using their IDs or a custom unique property. This is helpful for accessing specific sets of records without manually querying each one individually. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEBATCHLINEITEMS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEBATCHLINEITEMS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEBATCHLINEITEMS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEBATCHLINEITEMS"], + params=remove_none_values({"archived": retrieve_only_archived}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def archive_line_items_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/archive_archive'.", +]: + """Archive a batch of line items in HubSpot CRM. + + Use this tool to archive multiple line items at once by their IDs within HubSpot CRM. Ideal for managing and organizing CRM data efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVELINEITEMSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVELINEITEMSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVELINEITEMSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/line_items/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVELINEITEMSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.read"])) +async def list_crm_entries( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for, such as 'contacts' or 'deals'. Ignored if not existent.", # noqa: E501 + ] = None, + include_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. False to exclude archived entries.", + ] = False, + include_properties_with_history: Annotated[ + list[str] | None, + "List the properties whose values along with their history should be returned. Reduces the number of listings per request.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, + "The maximum number of CRM listing results to display per page. This controls pagination size.", # noqa: E501 + ] = 10, + paging_cursor_token: Annotated[ + str | None, "The cursor token for fetching the next page of CRM listings." + ] = None, + properties_to_return: Annotated[ + list[str] | None, + "Comma-separated list of properties to include in the response. Non-existent properties will be ignored.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-420'."]: + """Retrieve a page of CRM listings with specified properties. + + This tool fetches a page of CRM listings from HubSpot, allowing the user to control which properties are returned via query parameters. Use this to obtain customer records and details from the CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-420", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": properties_to_return, + "propertiesWithHistory": include_properties_with_history, + "associations": associated_object_types, + "archived": include_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def create_hubspot_listing( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420'."]: + """Create a HubSpot CRM listing and get the object details. + + Use this tool to create a listing in HubSpot CRM with specified properties. It returns the newly created object's details, including its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLISTING"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLISTING"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLISTING"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTLISTING"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def archive_multiple_listings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/archive'." +]: + """Archive multiple listings using their IDs. + + This tool archives multiple listings in HubSpot CRM by providing their IDs. It should be called when you need to bulk archive specific listings efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLELISTINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLELISTINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLELISTINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEMULTIPLELISTINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def update_multiple_crm_listings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/update'." +]: + """Update multiple CRM listings using internal IDs or unique properties. + + This tool updates multiple listings in the CRM using their internal IDs or unique property values. It should be called when there is a need to modify several records in bulk within the CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMULTIPLECRMLISTINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLECRMLISTINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLECRMLISTINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMULTIPLECRMLISTINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.read"])) +async def fetch_hubspot_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_records_only: Annotated[ + bool | None, + "Set to true to return only HubSpot CRM records that have been archived. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/read'." +]: + """Retrieve HubSpot CRM records by ID or custom property. + + This tool retrieves records from HubSpot CRM using either a record ID or a custom unique value property. It should be called when you need to access specific CRM records based on these identifiers. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["FETCHHUBSPOTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["FETCHHUBSPOTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["FETCHHUBSPOTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["FETCHHUBSPOTRECORDS"], + params=remove_none_values({"archived": return_archived_records_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def create_multiple_listings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/create'." +]: + """Create multiple listings in a single request. + + Use this tool to add several listings to the CRM in one operation. Ideal for bulk uploads or extensive data entry tasks. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMULTIPLELISTINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMULTIPLELISTINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMULTIPLELISTINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEMULTIPLELISTINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def create_or_update_batch_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/upsert'." +]: + """Create or update CRM records in batches. + + Use this tool to create or update records in the CRM identified by a unique property value. It allows handling multiple records in a single batch operation, specified by the `idProperty`. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEORUPDATEBATCHRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEORUPDATEBATCHRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEORUPDATEBATCHRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEORUPDATEBATCHRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.read"])) +async def search_hubspot_listings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-420/search'." +]: + """Search listings in HubSpot CRM using filters and properties. + + Use this tool to execute a search query in HubSpot CRM to find listings. You can specify various filters and properties to refine your search results. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTLISTINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTLISTINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTLISTINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTLISTINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.read"])) +async def get_listing_details( + context: ToolContext, + unique_listing_id: Annotated[ + str, "The unique identifier for the listing to be retrieved in HubSpot CRM." + ], + properties_to_return: Annotated[ + list[str] | None, + "A list of properties to be included in the response. Non-existent properties will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, "An array of property names to return along with their historical values." + ] = None, + retrieve_associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. Comma separated. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. Use false to include non-archived as well.", + ] = False, + unique_property_name: Annotated[ + str | None, + "The name of a property with unique values to identify the object in HubSpot CRM.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-420/{listingId}'." +]: + """Retrieve details of a listing by its ID. + + Retrieve information about a listing in HubSpot CRM using a unique listing ID or any specified unique property. Allows control of returned details via query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-420/{listingId}".format( # noqa: UP032 + listingId=unique_listing_id + ), + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_types, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def move_listing_to_recycle_bin( + context: ToolContext, + listing_id: Annotated[ + str, "The unique identifier of the listing to be moved to the recycling bin in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/0-420/{listingId}'." +]: + """Move a listing to the recycling bin by ID. + + Use this tool to move a specific listing identified by its ID to the recycling bin in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-420/{listingId}".format(listingId=listing_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.listings.write"])) +async def hubspot_update_listing( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + listing_id: Annotated[ + str | None, + "The unique identifier of the listing to update in HubSpot. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property for this object, used for identification. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/0-420/{listingId}'." +]: + """Update specific details of a HubSpot listing. + + This tool performs a partial update of a HubSpot listing identified by `listingId` or a unique property specified by `idProperty`. It overwrites provided property values, with errors for read-only or non-existent properties. Clear values by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["HUBSPOTUPDATELISTING"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not listing_id: + missing_params.append(("listing_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["HUBSPOTUPDATELISTING"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["HUBSPOTUPDATELISTING"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-420/{listingId}".format(listingId=listing_id), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["HUBSPOTUPDATELISTING"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def update_list_name( + context: ToolContext, + list_id: Annotated[str, "The unique ILS ID of the list to update."], + include_filter_branch_definition: Annotated[ + bool | None, + "Set to true to include filter branch definitions in the response list definition, or false to exclude them.", # noqa: E501 + ] = False, + new_list_name: Annotated[ + str | None, + "The new name for the CRM list. It must be globally unique relative to other public lists.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/{listId}/update-list-name_updateName'.", +]: + """Update the name of a CRM list in HubSpot. + + Call this tool to update the name of a CRM list in HubSpot, ensuring the new name is globally unique.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/update-list-name".format(listId=list_id), # noqa: UP032 + method="PUT", + params=remove_none_values({ + "listName": new_list_name, + "includeFilters": include_filter_branch_definition, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def update_list_memberships( + context: ToolContext, + list_identifier: Annotated[str, "The unique ILS ID of the MANUAL or SNAPSHOT list to update."], + record_ids_to_add: Annotated[ + list[str], + "An array of record IDs to be added to the specified list. Ensure these records are already created in the system.", # noqa: E501 + ], + record_ids_to_remove: Annotated[ + list[str], "An array of record IDs to remove from the list. Each ID should be a string." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/add-and-remove_addAndRemove'.", # noqa: E501 +]: + """Add or remove records from a manual or snapshot list. + + This tool is used to add and/or remove records from a manual or snapshot list in the HubSpot CRM. It facilitates managing list memberships by updating existing records according to specified changes.""" # noqa: E501 + request_data: Any = { + "recordIdsToRemove": record_ids_to_remove, + "recordIdsToAdd": record_ids_to_add, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add-and-remove".format( # noqa: UP032 + listId=list_identifier + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def fetch_hubspot_list_by_id( + context: ToolContext, + list_id: Annotated[str, "The ILS ID of the HubSpot CRM list to fetch."], + include_filter_definitions: Annotated[ + bool | None, + "Include filter branch definitions in the response. Defaults to false, meaning filter definitions are not included.", # noqa: E501 + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/lists/{listId}_getById'." +]: + """Fetch a single HubSpot CRM list using its ILS list ID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}".format(listId=list_id), # noqa: UP032 + method="GET", + params=remove_none_values({"includeFilters": include_filter_definitions}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def delete_list( + context: ToolContext, + list_id_to_delete: Annotated[ + str, + "The ILS ID of the CRM list to delete. Ensure the ID is correct to avoid unintentional deletion.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/lists/{listId}_remove'." +]: + """Delete a specified CRM list by its ID. + + Use this tool to delete a CRM list using its ID. Deleted lists can be restored within 90 days, after which they'll be permanently removed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}".format(listId=list_id_to_delete), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def retrieve_conversion_details( + context: ToolContext, + list_id: Annotated[ + str, "The ID of the list for which you want to retrieve conversion details." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/lists/{listId}/schedule-conversion'.", +]: + """Retrieve conversion details for a specific list in HubSpot CRM. + + Use this tool to check for upcoming conversions or to get details of past conversions for a list.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/schedule-conversion".format( # noqa: UP032 + listId=list_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def schedule_list_conversion( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + list_id: Annotated[ + str | None, + "The ID of the list you want to schedule the conversion for. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/{listId}/schedule-conversion'.", +]: + """Schedule or update the conversion of an active list to static. + + Use this tool to schedule the conversion of an active list into a static list, or to update an already scheduled conversion. This can be scheduled for a specific date or based on activity in HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SCHEDULELISTCONVERSION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not list_id: + missing_params.append(("list_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SCHEDULELISTCONVERSION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SCHEDULELISTCONVERSION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/lists/{listId}/schedule-conversion".format( # noqa: UP032 + listId=list_id + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SCHEDULELISTCONVERSION"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def delete_scheduled_conversion( + context: ToolContext, + list_id: Annotated[ + str, "The ID of the list for which you want to cancel the scheduled conversion." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/lists/{listId}/schedule-conversion'.", +]: + """Delete a scheduled conversion for a specific list. + + This tool deletes an existing scheduled conversion for a specified list in the HubSpot CRM. It should be called when you need to cancel a conversion schedule, and it returns a confirmation of the deletion.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/schedule-conversion".format( # noqa: UP032 + listId=list_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def search_hubspot_lists( + context: ToolContext, + filter_by_list_ids: Annotated[ + list[str] | None, + "An array of list IDs to filter search results. If not provided or empty, no filter is applied.", # noqa: E501 + ] = None, + filter_by_processing_types: Annotated[ + list[str] | None, + "List of processing types to filter results. Valid values: 'MANUAL', 'SNAPSHOT', 'DYNAMIC'. If omitted, no filtering by processing type is applied.", # noqa: E501 + ] = None, + include_additional_list_properties: Annotated[ + list[str] | None, + "Specify additional list properties to include in the response. Defaults fetch standard properties like `hs_list_size` and others.", # noqa: E501 + ] = None, + number_of_lists_to_return: Annotated[ + int | None, + "The number of lists to include in the response. Defaults to 20 if not provided, with a maximum of 500.", # noqa: E501 + ] = None, + search_query: Annotated[ + str | None, "The term to search for lists by name. Returns all lists if empty." + ] = None, + sort_order: Annotated[ + str | None, + "Specify the order in which the lists should be sorted. Acceptable values could be 'asc' for ascending or 'desc' for descending order.", # noqa: E501 + ] = None, + start_offset: Annotated[ + int | None, + "The starting point for pagination of list results. Defaults to `0` if not provided.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/lists/search_doSearch'." +]: + """Search HubSpot CRM lists by name or page through all lists. + + This tool allows searching for specific lists within the HubSpot CRM by list name. Alternatively, you can page through all lists by providing an empty query. It's useful for retrieving specific list data or browsing all available lists.""" # noqa: E501 + request_data: Any = { + "listIds": filter_by_list_ids, + "offset": start_offset, + "query": search_query, + "count": number_of_lists_to_return, + "processingTypes": filter_by_processing_types, + "additionalProperties": include_additional_list_properties, + "sort": sort_order, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/search", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def move_list_to_folder( + context: ToolContext, + list_id: Annotated[ + str, + "The ID of the list you want to move. It should be a valid string representing the list in HubSpot CRM.", # noqa: E501 + ], + target_folder_id: Annotated[ + str, "The ID of the folder to move the list to. Use '0' for the root folder." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'put-/crm/v3/lists/folders/move-list_moveList'." +]: + """Move a CRM list to a specified folder. + + Use this tool to move a specific list within HubSpot CRM to a desired folder, organizing lists efficiently.""" # noqa: E501 + request_data: Any = {"listId": list_id, "newFolderId": target_folder_id} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/folders/move-list", + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def add_to_hubspot_crm_list( + context: ToolContext, + list_id: Annotated[str, "The ILS ID of the MANUAL or SNAPSHOT list to add records."], + record_ids_to_add: Annotated[ + list[str], "An array of strings representing the IDs of the records to add to the list." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/add_add'.", +]: + """Add records to a specified HubSpot CRM list. + + Use this tool to add records to a specific HubSpot CRM list. Only works for lists with a processing type of MANUAL or SNAPSHOT. Records that don't exist or are already members will be ignored.""" # noqa: E501 + request_data: Any = record_ids_to_add + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add".format(listId=list_id), # noqa: UP032 + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def fetch_list_by_name( + context: ToolContext, + list_name: Annotated[str, "The name of the list to fetch. This is not case sensitive."], + object_type_id: Annotated[ + str, "The object type ID for the list. Example: `0-1` for `CONTACT`." + ], + include_filters: Annotated[ + bool | None, + "Set to true to include filter branch definitions in the response. By default, filters are not included.", # noqa: E501 + ] = False, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}_getByName'.", # noqa: E501 +]: + """Fetch details of a list by its name and object type. + + Use this tool to obtain the information of a specific list in HubSpot CRM by providing the list name and object type ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}".format( # noqa: UP032 + listName=list_name, objectTypeId=object_type_id + ), + method="GET", + params=remove_none_values({"includeFilters": include_filters}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def move_folder_in_hubspot( + context: ToolContext, + folder_id_to_move: Annotated[ + str, "The ID of the folder you want to move to a new location in HubSpot CRM." + ], + target_parent_folder_id: Annotated[ + str, "The ID of the target parent folder to which the current folder will be moved." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}_move'.", # noqa: E501 +]: + """Move a folder to a new parent in HubSpot CRM. + + This tool moves a folder to a new parent location in HubSpot CRM, updating the folder's parent ID to the specified new ID. Use this when you need to reorganize folder structures within the CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}".format( # noqa: UP032 + folderId=folder_id_to_move, newParentFolderId=target_parent_folder_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def translate_legacy_to_new_list_id( + context: ToolContext, + legacy_list_id: Annotated[ + str | None, "The legacy list ID from the lists v1 API to be translated to the new format." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/lists/idmapping_translateLegacyListIdToListId'.", +]: + """Translate legacy list ID to the new list ID format. + + This tool translates a legacy list ID to the new list ID format using HubSpot CRM's temporary API. It is useful for mapping old list IDs to new ones before the API expires on May 30th, 2025.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/idmapping", + method="GET", + params=remove_none_values({"legacyListId": legacy_list_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def translate_legacy_list_ids_batch( + context: ToolContext, + legacy_list_ids: Annotated[ + list[str], + "An array of legacy list IDs to be translated to new IDs, supporting up to 10,000 strings.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/lists/idmapping_translateLegacyListIdToListIdBatch'.", # noqa: E501 +]: + """Translate legacy list IDs to new list IDs in batch. + + Use this tool to convert a large number (up to 10,000) of legacy list IDs to the current list ID format. This tool is essential for data migration purposes and is available until May 30th, 2025.""" # noqa: E501 + request_data: Any = legacy_list_ids + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/idmapping", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def restore_deleted_list( + context: ToolContext, + list_id_to_restore: Annotated[ + str, "The ILS ID of the list to restore. Use this to specify which deleted list to recover." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'put-/crm/v3/lists/{listId}/restore_restore'." +]: + """Restore a previously deleted HubSpot CRM list. + + This tool restores a previously deleted list in HubSpot CRM using the list ID. Lists can be restored up to 90 days after deletion. Use this when you need to recover a list that was mistakenly deleted.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/restore".format( # noqa: UP032 + listId=list_id_to_restore + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def rename_crm_folder( + context: ToolContext, + folder_id: Annotated[str, "The ID of the folder you want to rename in HubSpot CRM."], + new_folder_name: Annotated[ + str | None, + "The new name to assign to the folder. It should be a string representing the desired folder name in HubSpot CRM.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/folders/{folderId}/rename_rename'.", +]: + """Rename a folder in HubSpot CRM by its folder ID. + + Use this tool to rename a specific folder in HubSpot CRM using its folder ID. Useful for organizing or updating folder names within your CRM system.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/folders/{folderId}/rename".format( # noqa: UP032 + folderId=folder_id + ), + method="PUT", + params=remove_none_values({"newFolderName": new_folder_name}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def fetch_list_memberships_ordered( + context: ToolContext, + list_id: Annotated[str, "The unique ILS ID of the list to retrieve memberships from."], + after_paging_offset_token: Annotated[ + str | None, + "The token for the page that comes after the previously requested records, sorted in ascending order. Takes precedence over 'before'.", # noqa: E501 + ] = None, + before_offset_token: Annotated[ + str | None, + "The paging offset token to retrieve records preceding the specified page, sorted in descending order.", # noqa: E501 + ] = None, + record_limit: Annotated[ + int | None, "Specify the number of records to return, with a maximum limit of 250." + ] = 100, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/lists/{listId}/memberships/join-order_getPageOrderedByAddedToListDate'.", # noqa: E501 +]: + """Fetch list memberships ordered by addition date. + + Fetch the memberships of a HubSpot CRM list, ordered by the date they were added. Useful for retrieving member records in an ascending order based on addition time, or in descending order if a 'before' offset is used.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships/join-order".format( # noqa: UP032 + listId=list_id + ), + method="GET", + params=remove_none_values({ + "after": after_paging_offset_token, + "before": before_offset_token, + "limit": record_limit, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def add_all_from_source_list_to_destination_list( + context: ToolContext, + destination_list_id: Annotated[ + str, + "The ILS ID of the MANUAL or SNAPSHOT destination list to which the source list records are added.", # noqa: E501 + ], + source_list_id: Annotated[ + str, "The ILS ID of the source list from which records are added to the destination list." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}_addAllFromList'.", # noqa: E501 +]: + """Add records from a source list to a destination list in HubSpot. + + This tool transfers all records from a specified source list to a destination list in HubSpot CRM, ignoring duplicates. Suitable for destination lists with manual or snapshot processing and source lists with fewer than 100,000 memberships.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}".format( # noqa: UP032 + listId=destination_list_id, sourceListId=source_list_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def get_record_list_memberships( + context: ToolContext, + object_type_id: Annotated[ + str, "Specify the object type ID of the record to retrieve its list memberships." + ], + record_id: Annotated[ + str, "The unique identifier of the CRM record whose list memberships you want to retrieve." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships_getLists'.", # noqa: E501 +]: + """Retrieve lists a CRM record is a member of. + + This tool retrieves the lists that a specified CRM record is a member of, helping track its association with different lists.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships".format( # noqa: UP032 + objectTypeId=object_type_id, recordId=record_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def delete_crm_folder( + context: ToolContext, + folder_id_to_delete: Annotated[str, "The ID of the folder to be deleted in HubSpot CRM."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/lists/folders/{folderId}_remove'.", +]: + """Deletes a specified CRM folder by ID. + + Use this tool to delete a folder in HubSpot CRM by providing the folder ID. It should be called when a specific folder needs to be permanently removed from the CRM system.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/folders/{folderId}".format( # noqa: UP032 + folderId=folder_id_to_delete + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def retrieve_folders_with_child_nodes( + context: ToolContext, + target_folder_id: Annotated[ + str | None, + "The ID of the folder to retrieve and include all child nodes recursively from HubSpot CRM.", # noqa: E501 + ] = "0", +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/lists/folders_getAll'." +]: + """Retrieve folders and include all child folders recursively. + + This tool is used to retrieve a folder from HubSpot CRM and recursively include all child folders via the childNodes attribute, while child lists in these nodes will be empty. Only the retrieved folder will include its child lists.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/folders", + method="GET", + params=remove_none_values({"folderId": target_folder_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def create_folder_hubspot_crm( + context: ToolContext, + folder_name: Annotated[str, "The name of the folder to be created in HubSpot CRM."], + parent_folder_id: Annotated[ + str | None, + "The ID of the folder where the new folder will be created. Defaults to root folder (ID: 0) if not specified.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/lists/folders_create'." +]: + """Creates a folder in HubSpot CRM with specified details. + + Use this tool to create a new folder in HubSpot CRM by providing the necessary information for the folder you want to create.""" # noqa: E501 + request_data: Any = {"parentFolderId": parent_folder_id, "name": folder_name} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/folders", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def remove_records_from_list( + context: ToolContext, + list_id: Annotated[ + str, "The ILS ID of the MANUAL or SNAPSHOT list from which records will be removed." + ], + record_ids_to_remove: Annotated[ + list[str], "List of record IDs to remove from the HubSpot CRM list." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/remove_remove'.", +]: + """Remove specified records from a HubSpot CRM list. + + Use this tool to remove records from a HubSpot CRM list with `processingType` of `MANUAL` or `SNAPSHOT`. Records not in the list will be ignored.""" # noqa: E501 + request_data: Any = record_ids_to_remove + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships/remove".format( # noqa: UP032 + listId=list_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.lists.read"])) +async def fetch_hubspot_list_memberships( + context: ToolContext, + list_identifier: Annotated[str, "The ILS ID of the HubSpot list to retrieve memberships for."], + before_offset_token: Annotated[ + str | None, + "The paging offset token for the page before the previously requested records, used to sort records in descending order.", # noqa: E501 + ] = None, + number_of_records_to_return: Annotated[ + int | None, + "Defines how many records to retrieve in the response, with a maximum value of 250.", + ] = 100, + paging_offset_after_token: Annotated[ + str | None, + "The paging offset token for the page that comes after the previously requested records. If provided, records will follow this offset, sorted in ascending order. Takes precedence over the before offset.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/lists/{listId}/memberships_getPage'.", +]: + """Retrieve memberships of a HubSpot list by order of record ID. + + Use this tool to fetch the memberships of a specific list in HubSpot CRM, sorted by `recordId`. The results can be ordered in ascending or descending order based on the presence of an `after` or `before` offset.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships".format( # noqa: UP032 + listId=list_identifier + ), + method="GET", + params=remove_none_values({ + "after": paging_offset_after_token, + "before": before_offset_token, + "limit": number_of_records_to_return, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=["crm.lists.write", "cms.membership.access_groups.write", "crm.lists.read"], + ) +) +async def remove_all_list_memberships( + context: ToolContext, + list_id: Annotated[ + str, + "The ILS ID of a MANUAL or SNAPSHOT list in HubSpot CRM. Required for removing all memberships.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/lists/{listId}/memberships_removeAll'.", +]: + """Remove all records from a CRM list without deleting the list. + + Use this tool to remove all memberships from a HubSpot CRM list that has a processing type of MANUAL or SNAPSHOT. Suitable for lists with fewer than 100,000 memberships.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/lists/{listId}/memberships".format(listId=list_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_meeting_details_by_id( + context: ToolContext, + meeting_identifier: Annotated[ + str, "Unique identifier for the meeting you want to retrieve details for." + ], + only_archived: Annotated[ + bool | None, "Set to true to return only archived meeting results." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "Comma separated list of properties to return with history of values. Ignored if not present on the object.", # noqa: E501 + ] = None, + retrieve_associated_object_ids: Annotated[ + list[str] | None, + "List of object types to fetch associated IDs for. Nonexistent associations will be ignored.", # noqa: E501 + ] = None, + return_properties: Annotated[ + list[str] | None, + "A list of properties to be returned in the response. If any specified properties are not present, they will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "The property name whose values uniquely identify the meeting object." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/meetings/{meetingId}_getById'.", +]: + """Retrieve detailed information about a specific meeting. + + Use this tool to get information about a meeting using its unique ID. You can specify properties to control what details are returned.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/meetings/{meetingId}".format( # noqa: UP032 + meetingId=meeting_identifier + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_ids, + "archived": only_archived, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def delete_meeting( + context: ToolContext, + meeting_id: Annotated[ + str, + "The unique ID of the meeting to be moved to the recycling bin. This is required to identify the specific meeting.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/meetings/{meetingId}_archive'.", +]: + """Move a meeting to the recycling bin using its ID. + + This tool is used to move a meeting, identified by its meeting ID, to the recycling bin in the HubSpot CRM. It is useful when you need to archive or remove a meeting from active records.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/meetings/{meetingId}".format( # noqa: UP032 + meetingId=meeting_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_hubspot_meeting( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + meeting_id: Annotated[ + str | None, + "The internal ID of the meeting or a property name with unique values for identification. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of the unique property for identifying the meeting. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/meetings/{meetingId}_update'.", +]: + """Update specific properties of a HubSpot meeting. + + Use this tool to perform a partial update on a HubSpot CRM meeting object. Identify the meeting using `{meetingId}` or a unique property with `idProperty`. Overwrite specified property values, but note that read-only or non-existent properties will cause an error. Properties can be cleared by sending an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMEETING"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not meeting_id: + missing_params.append(("meeting_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMEETING"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMEETING"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/{meetingId}".format( # noqa: UP032 + meetingId=meeting_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMEETING"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_meetings_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/update_update'.", +]: + """Update a batch of meetings in HubSpot CRM. + + This tool updates multiple meetings in HubSpot CRM using internal IDs or unique property values. It should be called when you need to modify details for several meetings at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMEETINGSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMEETINGSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMEETINGSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMEETINGSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_meeting_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_only_archived_results: Annotated[ + bool | None, + "Set to true to retrieve only archived meeting records. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/read_read'.", +]: + """Retrieve meeting records by ID or unique property. + + Use this tool to retrieve HubSpot CRM meeting records by specifying record IDs or a custom unique value property. It helps in accessing specific meeting details efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEMEETINGRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEMEETINGRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEMEETINGRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEMEETINGRECORDS"], + params=remove_none_values({"archived": return_only_archived_results}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_meetings_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/archive_archive'.", +]: + """Archive multiple meetings by IDs in batch. + + Use this tool to archive a batch of meetings by their IDs in HubSpot CRM. It is suitable for managing and cleaning up old or unnecessary meeting data efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEMEETINGSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEMEETINGSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEMEETINGSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEMEETINGSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_meetings_page( + context: ToolContext, + maximum_results_per_page: Annotated[ + int | None, + "The maximum number of meeting results to display per page. Specify an integer value.", + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token indicating the last successfully read resource, used for paging through results.", # noqa: E501 + ] = None, + properties: Annotated[ + list[str] | None, + "A list of property names to return in the response. If any are not present, they will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to retrieve with their change history. Reduces max meetings returned per request.", # noqa: E501 + ] = None, + retrieve_associated_object_ids: Annotated[ + list[str] | None, + "List object types to retrieve associated IDs for; ignored if associations don't exist.", + ] = None, + return_archived_results: Annotated[ + bool | None, "Set to true to return only archived results; false to include active results." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/meetings_getPage'." +]: + """Retrieve a page of meetings data from HubSpot CRM. + + Use this tool to read a page of meetings from HubSpot CRM. You can specify which properties to return using query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/meetings", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": properties, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_ids, + "archived": return_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_hubspot_meeting( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/meetings_create'." +]: + """Create a meeting in HubSpot and get its details. + + This tool is used to create a meeting in HubSpot CRM with specific properties. It returns the details of the created meeting, including the unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMEETING"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMEETING"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMEETING"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTMEETING"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_meetings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/upsert_upsert'.", +]: + """Create or update meeting records in HubSpot CRM. + + Use this tool to create new meetings or update existing ones in HubSpot CRM by specifying a unique identifier for each record. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTMEETINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTMEETINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTMEETINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTMEETINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_batch_meetings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/create_create'.", +]: + """Create a batch of meetings in HubSpot CRM. + + Use this tool to efficiently create multiple meetings at once in HubSpot CRM. Ideal for scheduling large numbers of meetings in a single operation. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHMEETINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHMEETINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHMEETINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHMEETINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_hubspot_meetings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/meetings/search_doSearch'.", +]: + """Search for meetings in HubSpot CRM. + + Use this tool to search for meetings stored in the HubSpot CRM. It should be called whenever there is a need to locate meetings based on specific criteria within the HubSpot platform. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTMEETINGS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTMEETINGS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTMEETINGS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/meetings/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTMEETINGS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_hubspot_notes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/notes/search_doSearch'." +]: + """Search for notes in HubSpot CRM. + + Use this tool to search for specific notes within HubSpot CRM. It should be called when you need to find and retrieve notes based on particular search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTNOTES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTNOTES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTNOTES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTNOTES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_notes_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, + "Token for paging to retrieve the next set of notes. Use the token from `paging.next.after` in the previous response.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their historical values. Reduces the maximum number of notes per request.", # noqa: E501 + ] = None, + results_per_page: Annotated[ + int | None, + "The maximum number of note results to display per page. Specify an integer value.", + ] = 10, + return_only_archived_notes: Annotated[ + bool | None, + "Set to True to return only archived notes; otherwise, non-archived notes are returned.", + ] = False, + returned_properties_list: Annotated[ + list[str] | None, + "List of note properties to include in the response. Specify as an array of strings.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/notes_getPage'." +]: + """Retrieve a page of notes from HubSpot CRM. + + Use this tool to read a page of notes from HubSpot CRM. You can control the properties returned via query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/notes", + method="GET", + params=remove_none_values({ + "limit": results_per_page, + "after": paging_cursor_token, + "properties": returned_properties_list, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_notes, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_note_in_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/notes_create'." +]: + """Create a note in HubSpot CRM and return its details. + + Use this tool to create a note in HubSpot CRM with specified properties. It returns a copy of the created note object, including its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATENOTEINHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATENOTEINHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATENOTEINHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATENOTEINHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_notes_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived records. Use false to include non-archived records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/read_read'." +]: + """Retrieve notes records by ID or custom property. + + This tool retrieves records from HubSpot CRM using either record IDs or a custom unique value property specified by the `idProperty` parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVENOTESRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVENOTESRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVENOTESRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVENOTESRECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_notes_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/upsert_upsert'.", +]: + """Create or update notes in HubSpot CRM by unique property. + + This tool is used to create or update multiple notes in HubSpot CRM in a single request. It identifies records using a unique property value specified by the `idProperty` query parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTNOTESHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTNOTESHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTNOTESHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTNOTESHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_notes_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/archive_archive'.", +]: + """Archive a batch of notes by their IDs. + + Use this tool to archive multiple notes in HubSpot CRM by providing their IDs. Ideal for managing large numbers of notes that need to be archived simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVENOTESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVENOTESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVENOTESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVENOTESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def batch_update_notes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/update_update'.", +]: + """Update multiple notes in HubSpot CRM by ID or property. + + Use this tool to update a batch of notes in HubSpot CRM by their internal IDs or unique property values. Ideal for situations where multiple notes need simultaneous modifications. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHUPDATENOTES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHUPDATENOTES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHUPDATENOTES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHUPDATENOTES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_batch_of_notes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/create_create'.", +]: + """Create multiple notes in a CRM batch operation. + + Use this tool to create a batch of notes in HubSpot CRM. Ideal for adding multiple notes efficiently in a single operation. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFNOTES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFNOTES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFNOTES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFNOTES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_note_details( + context: ToolContext, + note_id: Annotated[str, "The unique identifier of the note to retrieve details for."], + associated_object_types: Annotated[ + list[str] | None, + "List the object types to retrieve associated IDs for, separated by commas. Invalid types are ignored.", # noqa: E501 + ] = None, + properties_to_return: Annotated[ + list[str] | None, + "A list of property names to return for the note. Non-existing properties will be ignored.", + ] = None, + return_archived_results_only: Annotated[ + bool | None, "Set to true to return only archived notes." + ] = False, + return_properties_with_history: Annotated[ + list[str] | None, + "List properties to return with their history of previous values. Ignored if not present on the object.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "Specify the unique property name to identify the object in HubSpot CRM." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/notes/{noteId}_getById'." +]: + """Retrieve details of a note by its unique ID. + + Use this tool to get details of a note from HubSpot CRM using its unique ID. You can specify additional properties to control the returned data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/notes/{noteId}".format(noteId=note_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": return_properties_with_history, + "associations": associated_object_types, + "archived": return_archived_results_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def delete_note_hubspot( + context: ToolContext, + note_id: Annotated[str, "The unique identifier of the note to be archived in HubSpot CRM."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/notes/{noteId}_archive'.", +]: + """Move a HubSpot note to the recycling bin. + + Use this tool to move a note identified by `noteId` in HubSpot CRM to the recycling bin. This is useful for soft-deleting notes when they are no longer needed in the immediate CRM workspace.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/notes/{noteId}".format(noteId=note_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_hubspot_note( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + note_identifier: Annotated[ + str | None, + "The ID or unique property value of the note to update. Use `noteId` for internal ID or specify a unique property via `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property with unique values for this object, used to identify the note. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/notes/{noteId}_update'." +]: + """Update a HubSpot note with new property values. + + Use this tool to update specific properties of a HubSpot CRM note. Identify the note by its ID or a unique property value and provide new values for properties you wish to change. Read-only and non-existent properties cannot be updated. Clear properties by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTNOTE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not note_identifier: + missing_params.append(("note_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTNOTE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTNOTE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/notes/{noteId}".format(noteId=note_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTNOTE"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def fetch_enablement_data( + context: ToolContext, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/object-library/enablement'." +]: + """Fetch enablement data from HubSpot CRM. + + Use this tool to obtain enablement information from the HubSpot CRM. It should be called when detailed enablement data is required for CRM-related operations or analyses.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/object-library/enablement", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write", + ], + ) +) +async def enable_object_type_in_hubspot( + context: ToolContext, + object_type_id: Annotated[ + str, "The unique identifier for the object type in HubSpot CRM that needs to be enabled." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/object-library/enablement/{objectTypeId}'.", +]: + """Enable an object type in HubSpot CRM via its ID. + + This tool is used to enable a specific object type in HubSpot's CRM system using the object's unique ID. It should be called when there is a need to activate or verify the activation status of a specific object category in HubSpot.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/object-library/enablement/{objectTypeId}".format( # noqa: UP032 + objectTypeId=object_type_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.read"])) +async def search_order_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders/search'." +]: + """Search for order records in HubSpot CRM. + + This tool searches order records in HubSpot CRM based on specified criteria. It should be called when you need to find specific order details or filter orders according to certain conditions. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHORDERRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHORDERRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHORDERRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHORDERRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.read"])) +async def retrieve_hubspot_orders( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_only_archived_orders: Annotated[ + bool | None, + "Set to True to return only archived order records from HubSpot CRM. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/read'." +]: + """Retrieve order records from HubSpot CRM by ID or custom property. + + Use this tool to fetch order records from HubSpot CRM by providing record IDs or a custom unique value property. Ideal for accessing specific order details stored in your HubSpot account. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTORDERS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTORDERS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTORDERS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTORDERS"], + params=remove_none_values({"archived": return_only_archived_orders}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.read"])) +async def get_order_details( + context: ToolContext, + order_identifier: Annotated[ + str, + "The unique identifier for the order. This can be the internal object ID or a unique property value specified by the idProperty.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "Comma separated list of object types to retrieve associated IDs. Non-existent associations are ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their history of previous values. If specified properties are not present, they will be ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results for the specified order." + ] = False, + return_properties: Annotated[ + list[str] | None, + "List the properties to retrieve for the order. Any nonexistent properties will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the name of a unique property to identify the order. Overrides the default ID.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/orders/{orderId}'." +]: + """Retrieve details of an order using its ID. + + Call this tool to get detailed information about a specific order from the HubSpot CRM by using the order's ID. You can control which properties of the order are returned by specifying them in the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/orders/{orderId}".format( # noqa: UP032 + orderId=order_identifier + ), + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def delete_order_by_id( + context: ToolContext, + order_id: Annotated[ + str, "The unique ID of the order to delete, moving it to the recycling bin." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/orders/{orderId}'." +]: + """Deletes an order by its ID from the CRM. + + Use this tool to delete an order from the CRM system by providing its unique ID. The order will be moved to the recycling bin, allowing for potential recovery later if needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/orders/{orderId}".format(orderId=order_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def update_order_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + order_id: Annotated[ + str | None, + "The internal ID of the order to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the name of a unique property to identify the order object instead of using the order ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/orders/{orderId}'." +]: + """Update specific details of an order using its ID. + + This tool performs a partial update of an order in HubSpot CRM, identified by the order's internal ID or a unique property value. Use it to modify existing order properties; read-only or non-existent properties cannot be updated and will cause errors. Properties can be cleared by providing empty values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEORDERDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not order_id: + missing_params.append(("order_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEORDERDETAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEORDERDETAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/{orderId}".format(orderId=order_id), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEORDERDETAILS"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def upsert_orders_in_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/upsert'." +]: + """Create or update orders in HubSpot CRM. + + This tool calls the HubSpot CRM API to create or update multiple order records based on a unique property value. Use it when you need to batch insert or update orders by specifying a unique identifier for each order. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTORDERSINHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTORDERSINHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTORDERSINHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTORDERSINHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def create_batch_orders( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/create'." +]: + """Create a batch of orders in HubSpot CRM. + + Use this tool to create multiple orders at once in HubSpot CRM. It is suitable when you need to efficiently process and record several orders simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHORDERS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHORDERS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHORDERS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHORDERS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def update_hubspot_orders_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/update'." +]: + """Update multiple HubSpot CRM orders in a batch. + + Use this tool to update a batch of orders in HubSpot CRM by their internal ID or unique property values. Useful for modifying multiple order records at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTORDERSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTORDERSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTORDERSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTORDERSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.read"])) +async def get_orders_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for; ignored if not existing.", + ] = None, + only_return_archived_orders: Annotated[ + bool | None, + "Set to true to return only archived orders. False returns both archived and unarchived orders.", # noqa: E501 + ] = False, + order_properties_to_return: Annotated[ + list[str] | None, + "A list of properties to be included in the order response. Specify as a comma-separated string. Ignored if not present on the objects.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, + "Token for pagination, representing the last successfully read resource for fetching the next page of results.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of order properties to return with their history of previous values. Reduces maximum results per request.", # noqa: E501 + ] = None, + results_per_page: Annotated[ + int | None, + "The maximum number of orders to display per page. This controls the pagination size.", + ] = 10, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/orders'."]: + """Retrieve a page of orders from CRM. + + This tool fetches a page of orders from the CRM. You can specify which properties to include in the results using the query parameters. Use this tool to list orders when needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/orders", + method="GET", + params=remove_none_values({ + "limit": results_per_page, + "after": paging_cursor_token, + "properties": order_properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_return_archived_orders, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def create_hubspot_order( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders'."]: + """Create a new order in HubSpot CRM with specified properties. + + Use this tool to create a new order in the HubSpot CRM system. It returns the details and ID of the created order, allowing further tracking and management. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTORDER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTORDER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTORDER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTORDER"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.orders.write"])) +async def archive_orders_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/archive'." +]: + """Archive a batch of orders by ID in HubSpot CRM. + + + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEORDERSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEORDERSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEORDERSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/orders/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEORDERSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.write"])) +async def update_partner_clients_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/partner_clients/batch/update'.", +]: + """Update multiple partner clients in a batch. + + Use this tool to update information for multiple partner clients simultaneously in HubSpot CRM. It should be called when you need to make bulk updates to partner client records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.read"])) +async def get_partner_clients( + context: ToolContext, + client_properties: Annotated[ + list[str] | None, + "A list of specific client properties to retrieve, such as 'name', 'email', etc.", + ] = None, + include_archived: Annotated[ + bool | None, "Set to true to include archived partner clients, false to exclude them." + ] = False, + include_associations: Annotated[ + list[str] | None, + "List of associations to include in the response. Specify names of associations as strings.", # noqa: E501 + ] = None, + pagination_cursor: Annotated[ + str | None, + "A string token to retrieve the next page of partner clients, obtained from a previous response.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List property names to retrieve along with their historical versions. Each property should be specified as a string.", # noqa: E501 + ] = None, + retrieval_limit: Annotated[ + int | None, + "Specifies the maximum number of partner clients to retrieve from the HubSpot CRM in a single call.", # noqa: E501 + ] = 10, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/partner_clients'." +]: + """Retrieve partner clients from HubSpot CRM. + + This tool retrieves a list of partner clients from the HubSpot CRM. It should be called when users need to access details about their partner clients stored in HubSpot's CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_clients", + method="GET", + params=remove_none_values({ + "limit": retrieval_limit, + "after": pagination_cursor, + "properties": client_properties, + "propertiesWithHistory": properties_with_history, + "associations": include_associations, + "archived": include_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.read"])) +async def batch_read_partner_clients( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + include_archived: Annotated[ + bool | None, + "Set to true to include archived partner clients in the batch results. Default is false. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/partner_clients/batch/read'.", +]: + """Fetch batch details of partner clients in HubSpot CRM. + + Use this tool to retrieve information for multiple partner clients at once from HubSpot CRM. Ideal for scenarios where bulk data about partner clients is needed. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHREADPARTNERCLIENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHREADPARTNERCLIENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHREADPARTNERCLIENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHREADPARTNERCLIENTS"], + params=remove_none_values({"archived": include_archived}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.read"])) +async def search_partner_clients( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/partner_clients/search'." +]: + """Perform a search for partner clients in CRM. + + Use this tool to search for partner clients within the HubSpot CRM system. It should be called when you need to find specific partner client information or records based on search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHPARTNERCLIENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHPARTNERCLIENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHPARTNERCLIENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHPARTNERCLIENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.read"])) +async def get_partner_client_info( + context: ToolContext, + partner_client_id: Annotated[ + str, "The unique identifier for the partner client to retrieve details from HubSpot CRM." + ], + associated_objects: Annotated[ + list[str] | None, + "A list of associated object types to include, such as 'contacts' or 'deals'.", + ] = None, + include_archived_data: Annotated[ + bool | None, + "Boolean to specify if archived partner client data should be included in the response. Set to true to include archived data.", # noqa: E501 + ] = False, + optional_properties: Annotated[ + list[str] | None, + "An array of specific properties to retrieve for the partner client. Leave empty to obtain all available properties.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Specify the list of properties to retrieve, including their historical values.", + ] = None, + property_id: Annotated[ + str | None, + "Specify which property should be used as the primary identifier for the partner client. Useful for custom identification schemes.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/partner_clients/{partnerClientId}'.", +]: + """Retrieve information for a specific partner client. + + Call this tool to obtain details about a specific partner client using their unique identifier within the HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}".format( # noqa: UP032 + partnerClientId=partner_client_id + ), + method="GET", + params=remove_none_values({ + "properties": optional_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_objects, + "archived": include_archived_data, + "idProperty": property_id, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.write"])) +async def update_partner_client( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + partner_client_id: Annotated[ + str | None, + "The unique identifier for the partner client to be updated in HubSpot CRM. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + identifier_property: Annotated[ + str | None, + "Specify the property name used to identify the partner client for update operations. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/partner_clients/{partnerClientId}'.", +]: + """Update details of a partner client in HubSpot CRM. + + This tool is used to modify the information of a specified partner client in HubSpot CRM. It should be called when there is a need to update or change details related to a partner client using their unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not partner_client_id: + missing_params.append(("partner_client_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}".format( # noqa: UP032 + partnerClientId=partner_client_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPARTNERCLIENT"], + params=remove_none_values({"idProperty": identifier_property}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.write"])) +async def associate_partner_client_with_object( + context: ToolContext, + association_type: Annotated[ + str, + "Specifies the type of association (e.g., contact, company, deal) between the partner client and the object.", # noqa: E501 + ], + partner_client_id: Annotated[ + str, + "The unique identifier for the partner client you wish to associate with another object. This should be a string representing the partner client's ID in the CRM system.", # noqa: E501 + ], + target_object_id: Annotated[ + str, + "The unique identifier of the CRM object you are associating with the partner client. This could be any valid object ID such as that of a contact, company, or deal.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "The type of the object to associate with the partner client (e.g., contact, company, deal).", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", # noqa: E501 +]: + """Associate a partner client with another CRM object. + + Use this tool to create an association between a partner client and another object in the CRM system, such as a contact, company, or deal. This can help in linking related entities for better data management and relationship tracking.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}".format( # noqa: UP032 + partnerClientId=partner_client_id, + toObjectType=target_object_type, + toObjectId=target_object_id, + associationType=association_type, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.write"])) +async def remove_partner_client_association( + context: ToolContext, + association_type: Annotated[ + str, + "The type of association to be removed between the partner client and the object. This defines the nature of their relationship.", # noqa: E501 + ], + partner_client_id: Annotated[ + str, + "The unique identifier for the partner client to be disassociated. This should be a string that identifies the specific partner client in the HubSpot CRM.", # noqa: E501 + ], + target_object_id: Annotated[ + str, "The unique identifier of the object associated with the target partner client." + ], + target_object_type: Annotated[ + str, + "Specify the type of the object you are dissociating from the partner client, such as 'contacts' or 'companies'.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", # noqa: E501 +]: + """Remove an association between two partner clients in HubSpot CRM. + + This tool removes an existing association between two partner clients in the HubSpot CRM system. It should be called when you need to disassociate a partner client from another object, identified by specific IDs and association type.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}".format( # noqa: UP032 + partnerClientId=partner_client_id, + toObjectType=target_object_type, + toObjectId=target_object_id, + associationType=association_type, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-clients.read"])) +async def list_partner_client_associations( + context: ToolContext, + partner_client_id: Annotated[ + str, + "The unique identifier for the partner client whose associations are to be retrieved. It is required and must be a valid string.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "The type of object to which the partner client is associated. Specify using a string value representing the object type, such as 'contact' or 'deal'.", # noqa: E501 + ], + include_family_associations: Annotated[ + bool | None, + "Indicate whether to include family associations in the response. Set to true to include them.", # noqa: E501 + ] = False, + max_results_per_page: Annotated[ + int | None, + "Specify the maximum number of results to display per page. Use an integer value.", + ] = 500, + paging_cursor_token: Annotated[ + str | None, "The token used for pagination to fetch the next set of results." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}'.", # noqa: E501 +]: + """Retrieve associations of a partner client by type. + + Use this tool to list associations for a specific partner client in HubSpot CRM. It helps in retrieving related objects based on the specified type.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}".format( # noqa: UP032 + partnerClientId=partner_client_id, toObjectType=target_object_type + ), + method="GET", + params=remove_none_values({ + "after": paging_cursor_token, + "limit": max_results_per_page, + "includeFA": include_family_associations, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.read"])) +async def get_partner_service_details( + context: ToolContext, + partner_service_id: Annotated[ + str, + "The unique ID of the partner service object to retrieve. This can be the internal object ID or a unique property value as specified by the `idProperty`.", # noqa: E501 + ], + properties_to_return: Annotated[ + list[str] | None, + "A list of property names to return for the partner service. Any missing properties will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties whose historical values should be returned for the partner service object.", # noqa: E501 + ] = None, + retrieve_associated_ids: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs. Non-existent associations are ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results, false otherwise." + ] = False, + unique_property_name: Annotated[ + str | None, "The name of a unique property to identify the object." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/partner_services/{partnerServiceId}'.", +]: + """Retrieve details of a partner service by ID. + + Use this tool to get information about a specific partner service object using its ID. You can specify which properties to return or use the default settings to retrieve comprehensive details.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}".format( # noqa: UP032 + partnerServiceId=partner_service_id + ), + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_ids, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.write"])) +async def update_partner_service( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + partner_service_id: Annotated[ + str | None, + "The internal object ID of the partner service to update. Use this to specify the object you want to partially update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the name of a unique property for the partner service object to identify it. This is used instead of the default internal ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/partner_services/{partnerServiceId}'.", +]: + """Partially update a partner service object in HubSpot CRM. + + Use this tool to update specific properties of a partner service object identified by `partnerServiceId` in HubSpot CRM. You can also use a unique property value specified by `idProperty`. Only existing, non-read-only properties can be updated. To clear a property, pass an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not partner_service_id: + missing_params.append(("partner_service_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}".format( # noqa: UP032 + partnerServiceId=partner_service_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICE"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.read"])) +async def retrieve_partner_services_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_only_archived_records: Annotated[ + bool | None, + "Set to true to return only the archived records. False will include non-archived records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/partner_services/batch/read'.", +]: + """Retrieve partner services records by ID or unique property. + + This tool retrieves records for partner services using either a record ID or a custom unique value property. It is ideal for accessing specific partner service data within the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEPARTNERSERVICESRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEPARTNERSERVICESRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEPARTNERSERVICESRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_services/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEPARTNERSERVICESRECORDS"], + params=remove_none_values({"archived": return_only_archived_records}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.read"])) +async def search_partner_services_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/partner_services/search'." +]: + """Search for partner services in HubSpot CRM. + + Use this tool to perform a search for partner services within the HubSpot CRM. It can be called when you need to find specific partner services based on given criteria or parameters. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHPARTNERSERVICESHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["SEARCHPARTNERSERVICESHUBSPOT"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["SEARCHPARTNERSERVICESHUBSPOT"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_services/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHPARTNERSERVICESHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.read"])) +async def get_partner_services( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Ignored if associations do not exist.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, "The maximum number of results to display per page. Must be an integer value." + ] = 10, + paging_cursor_after: Annotated[ + str | None, "The cursor token to retrieve the next page of results in a paged response." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of property names to fetch with their history. Reduces max number of results per request.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + return_properties: Annotated[ + list[str] | None, + "List of properties to return in the response. Ignored if not present on requested objects.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/partner_services'." +]: + """Retrieve a page of partner services. + + Fetch a list of partner services from the HubSpot CRM. The returned data can be customized using the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_services", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_after, + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.write"])) +async def associate_partner_service( + context: ToolContext, + association_type: Annotated[ + str, + 'Specifies the type of association to create between the partner service and another object (e.g., "owner", "affiliate").', # noqa: E501 + ], + partner_service_id: Annotated[ + str, + "The identifier for the partner service to associate with another object. This should be a valid string representing the unique ID of the partner service in the CRM.", # noqa: E501 + ], + target_object_id: Annotated[ + str, + "The ID of the target object you want to associate with the partner service. This should be a valid object ID in HubSpot CRM.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "The type of CRM object to associate with the partner service, e.g., 'contacts', 'companies', or 'deals'.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", # noqa: E501 +]: + """Associate a partner service with another CRM object. + + Use this tool to associate a partner service with another CRM object in HubSpot, such as contacts, companies, or deals. This is useful when you want to establish connections between different objects in your CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}".format( # noqa: UP032 + partnerServiceId=partner_service_id, + toObjectType=target_object_type, + toObjectId=target_object_id, + associationType=association_type, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.write"])) +async def remove_partner_service_association( + context: ToolContext, + association_type: Annotated[ + str, + "Specifies the type of association to remove between the partner services. This is a string value that defines how the services are linked.", # noqa: E501 + ], + partner_service_id: Annotated[ + str, + "The unique identifier for the partner service. It specifies which partner service's association is to be removed.", # noqa: E501 + ], + target_object_id: Annotated[ + str, + "The unique identifier of the object to be disassociated from the partner service. This is required to specify which object is being unlinked.", # noqa: E501 + ], + target_object_type: Annotated[ + str, + "The type of the object to which the partner service is associated. Specify the object category, such as 'contact', 'company', etc.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", # noqa: E501 +]: + """Remove an association between two partner services. + + This tool removes the specified association between partner services in HubSpot CRM. Use it when you need to disassociate two services linked by a specific relationship.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}".format( # noqa: UP032 + partnerServiceId=partner_service_id, + toObjectType=target_object_type, + toObjectId=target_object_id, + associationType=association_type, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.write"])) +async def update_partner_services_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/partner_services/batch/update'.", +]: + """Update multiple partner services in CRM by ID or unique properties. + + Use this tool to update a batch of partner services in the HubSpot CRM using internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICESBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICESBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/partner_services/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPARTNERSERVICESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.partner-services.read"])) +async def list_partner_service_associations( + context: ToolContext, + partner_service_id: Annotated[ + str, + "The unique identifier of the partner service to retrieve associations for. This ID is required.", # noqa: E501 + ], + target_object_type: Annotated[ + str, "The type of object to filter associations by, such as contacts, companies, etc." + ], + include_associated_fields: Annotated[ + bool | None, "Set to true to include associated fields in the response." + ] = False, + max_results_per_page: Annotated[ + int | None, + "Specify the maximum number of results to display per page. This determines the page size for the response.", # noqa: E501 + ] = 500, + paging_cursor_token: Annotated[ + str | None, "The token to continue paginated results from the last read resource." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}'.", # noqa: E501 +]: + """Retrieve associations of a partner service by type. + + This tool retrieves a list of associations for a specified partner service in HubSpot CRM based on the provided type. It should be called when you need to explore relationships connected to a partner service, filtering by specific object types.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}".format( # noqa: UP032 + partnerServiceId=partner_service_id, toObjectType=target_object_type + ), + method="GET", + params=remove_none_values({ + "after": paging_cursor_token, + "limit": max_results_per_page, + "includeFA": include_associated_fields, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot")) +async def read_batch_payments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + only_return_archived_results: Annotated[ + bool | None, + "Return only archived results if set to true. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/payments/batch/read'." +]: + """Retrieve a batch of payments from CRM by IDs or unique properties. + + Use this tool to get details of multiple payments from the CRM system based on internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["READBATCHPAYMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["READBATCHPAYMENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["READBATCHPAYMENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/payments/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["READBATCHPAYMENTS"], + params=remove_none_values({"archived": only_return_archived_results}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot")) +async def get_payment_details( + context: ToolContext, + payment_identifier: Annotated[ + str, + "The unique identifier for the payment object. This can be the internal object ID or a unique property value.", # noqa: E501 + ], + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their historical values. Unavailable properties will be ignored.", # noqa: E501 + ] = None, + requested_properties: Annotated[ + list[str] | None, + "A list of properties to return in the response. Non-existent properties will be ignored.", + ] = None, + retrieve_associated_object_ids: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for this payment. Non-existent associations are ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived results in the response." + ] = False, + unique_property_name: Annotated[ + str | None, + "The name of a property uniquely identifying the payment object type. Used to specify a unique property other than the internal ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/payments/{paymentsId}'." +]: + """Retrieve details of a payment object by ID. + + Use this tool to obtain information about a specific payment object in the CRM by providing its ID. The ID can be the internal object ID or another unique property value. You can control the properties returned using the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/payments/{paymentsId}".format( # noqa: UP032 + paymentsId=payment_identifier + ), + method="GET", + params=remove_none_values({ + "properties": requested_properties, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_ids, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot")) +async def get_payment_records( + context: ToolContext, + archived_results_only: Annotated[ + bool | None, + "Indicate if only archived payment records should be returned. Set to true to filter for archived records only.", # noqa: E501 + ] = False, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. If specified associations do not exist, they will be ignored.", # noqa: E501 + ] = None, + paging_token_after: Annotated[ + str | None, + "The cursor token from the last read resource to fetch the next page of results.", + ] = None, + payment_properties_to_include: Annotated[ + list[str] | None, + "A list of property names to include in the response. Specified properties not present on the requested objects will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of property names to return with their historical values. Ignored if not present on objects.", # noqa: E501 + ] = None, + results_per_page_limit: Annotated[ + int | None, "Maximum number of payment records to display per page." + ] = 10, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/payments'."]: + """Retrieve a page of payment records from HubSpot CRM. + + Use this tool to get a list of payment records from the HubSpot CRM. You can specify which properties to include in the results by using query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/payments", + method="GET", + params=remove_none_values({ + "limit": results_per_page_limit, + "after": paging_token_after, + "properties": payment_properties_to_include, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": archived_results_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot")) +async def search_hubspot_payments( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/payments/search'." +]: + """Search for payments in HubSpot CRM. + + Use this tool to search for specific payments within the HubSpot CRM. It should be called when you need to locate payments based on specific criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPAYMENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPAYMENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPAYMENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/payments/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPAYMENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_pipeline_stage_audit( + context: ToolContext, + object_type: Annotated[ + str, + "The CRM object type to query for the pipeline stage, such as 'deals', 'tickets', or 'contacts'.", # noqa: E501 + ], + pipeline_id: Annotated[ + str, "The unique identifier for the pipeline to retrieve stage audit logs from." + ], + stage_identifier: Annotated[ + str, + "The unique identifier of the pipeline stage to audit. Use this to specify which stage's mutations you want to retrieve.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit_getAudit'.", # noqa: E501 +]: + """Retrieve audit logs for a specific pipeline stage. + + This tool retrieves a reverse chronological list of all mutations that have occurred on a specified pipeline stage within HubSpot CRM. It should be called when you need to audit changes or track the history of a pipeline stage.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit".format( # noqa: UP032 + objectType=object_type, stageId=stage_identifier, pipelineId=pipeline_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_pipeline_by_id( + context: ToolContext, + object_type_in_crm: Annotated[ + str, + "Specify the type of CRM object, such as 'deals' or 'tickets', whose pipeline you want to retrieve.", # noqa: E501 + ], + pipeline_unique_id: Annotated[ + str, + "The unique identifier for the CRM pipeline to retrieve details. This value is required to fetch the specific pipeline information.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}_getById'.", +]: + """Retrieve a single CRM pipeline by its unique ID. + + Use this tool to get detailed information about a specific pipeline in the HubSpot CRM by providing its unique identifier and object type.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}".format( # noqa: UP032 + objectType=object_type_in_crm, pipelineId=pipeline_unique_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def replace_pipeline_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "Specify the object type for the pipeline, such as 'deals' or 'tickets'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + pipeline_identifier: Annotated[ + str | None, + "The unique identifier of the pipeline to replace in HubSpot CRM. This is required to specify which pipeline is being modified. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + validate_references_before_deletion: Annotated[ + bool | None, + "Set to true to validate all references before deleting the pipeline. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + validate_deal_stage_usages_before_delete: Annotated[ + bool | None, + "Set to true to validate deal stage usages before deleting a pipeline; false to proceed without validation. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/pipelines/{objectType}/{pipelineId}_replace'.", +]: + """Replace a specific pipeline in HubSpot CRM. + + Use this tool to replace a specific pipeline in HubSpot CRM when you need to update or modify the pipeline's entire structure or data. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["REPLACEPIPELINEHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + if not pipeline_identifier: + missing_params.append(("pipeline_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["REPLACEPIPELINEHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["REPLACEPIPELINEHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}".format( # noqa: UP032 + objectType=object_type, pipelineId=pipeline_identifier + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["REPLACEPIPELINEHUBSPOT"], + params=remove_none_values({ + "validateReferencesBeforeDelete": validate_references_before_deletion, + "validateDealStageUsagesBeforeDelete": validate_deal_stage_usages_before_delete, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def delete_pipeline( + context: ToolContext, + pipeline_id: Annotated[ + str, + "The unique identifier of the pipeline to be deleted. Required for specifying which pipeline to remove.", # noqa: E501 + ], + pipeline_object_type: Annotated[ + str, "Specify the type of object for the pipeline, such as 'deals' or 'tickets'." + ], + validate_deal_stage_usages_before_deletion: Annotated[ + bool | None, + "Set to true to validate deal stage usages before deleting a pipeline, preventing deletion if usages are found.", # noqa: E501 + ] = False, + validate_references_before_delete: Annotated[ + bool | None, + "Set to true to validate references before deleting the pipeline. This prevents accidental deletion when references are present.", # noqa: E501 + ] = False, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/pipelines/{objectType}/{pipelineId}_archive'.", +]: + """Delete a specific pipeline in the CRM. + + This tool is used to delete a specific pipeline in HubSpot CRM by providing the object type and pipeline ID. Call this tool when a pipeline needs to be removed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}".format( # noqa: UP032 + objectType=pipeline_object_type, pipelineId=pipeline_id + ), + method="DELETE", + params=remove_none_values({ + "validateReferencesBeforeDelete": validate_references_before_delete, + "validateDealStageUsagesBeforeDelete": validate_deal_stage_usages_before_deletion, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def update_pipeline_in_crm( + context: ToolContext, + crm_object_type: Annotated[ + str, "Specify the type of CRM object (e.g., deals, tickets) to update the pipeline for." + ], + pipeline_identifier: Annotated[ + str, + "The unique identifier for the pipeline to be updated. This is required to specify which pipeline to modify.", # noqa: E501 + ], + is_pipeline_archived: Annotated[ + bool | None, + "Set to true if the pipeline is currently archived and you intend to restore it. Use only for restoration calls.", # noqa: E501 + ] = None, + pipeline_display_order: Annotated[ + int | None, + "The display order number to determine the position of the pipeline in the CRM. Pipelines with the same display order are sorted alphabetically by label.", # noqa: E501 + ] = None, + pipeline_label: Annotated[ + str | None, "A unique label to organize and identify the pipeline within HubSpot's UI." + ] = None, + validate_deal_stage_usages_before_delete: Annotated[ + bool | None, + "Indicate if deal stage usages should be validated before deletion. A boolean value is expected.", # noqa: E501 + ] = False, + validate_references_before_deletion: Annotated[ + bool | None, "Set to true to validate references before deletion." + ] = False, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/pipelines/{objectType}/{pipelineId}_update'.", +]: + """Partially update a pipeline in the CRM. + + Use this tool to perform a partial update of a pipeline identified by its pipeline ID within a specified object type in the CRM. The tool will return the updated pipeline details.""" # noqa: E501 + request_data: Any = { + "archived": is_pipeline_archived, + "displayOrder": pipeline_display_order, + "label": pipeline_label, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}".format( # noqa: UP032 + objectType=crm_object_type, pipelineId=pipeline_identifier + ), + method="PATCH", + params=remove_none_values({ + "validateReferencesBeforeDelete": validate_references_before_deletion, + "validateDealStageUsagesBeforeDelete": validate_deal_stage_usages_before_delete, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_pipeline_stages( + context: ToolContext, + object_type: Annotated[ + str, + "Specify the type of CRM object, such as deals or tickets, associated with the pipeline.", + ], + pipeline_id: Annotated[ + str, + "The ID of the pipeline to retrieve stages for. Must be a valid pipeline ID in HubSpot CRM.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_getAll'.", # noqa: E501 +]: + """Retrieve all stages of a specified pipeline. + + Use this tool to get all the stages associated with a specific pipeline in HubSpot CRM. It requires specifying the pipeline through its ID and object type.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages".format( # noqa: UP032 + objectType=object_type, pipelineId=pipeline_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def create_pipeline_stage( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specify the CRM object type, such as deals or tickets, for the pipeline. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + pipeline_id: Annotated[ + str | None, + "The unique identifier of the pipeline where the new stage will be created. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_create'.", # noqa: E501 +]: + """Create a stage in a specified pipeline. + + This tool creates a new stage within a specified pipeline in the HubSpot CRM. Use it when you need to add a new stage to an existing pipeline, specifying the object type and pipeline ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPIPELINESTAGE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + if not pipeline_id: + missing_params.append(("pipeline_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPIPELINESTAGE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPIPELINESTAGE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages".format( # noqa: UP032 + objectType=crm_object_type, pipelineId=pipeline_id + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEPIPELINESTAGE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_pipeline_audit_log( + context: ToolContext, + object_type: Annotated[ + str, + "The type of CRM object for which audit logs are being retrieved, such as 'deals' or 'contacts'.", # noqa: E501 + ], + pipeline_id: Annotated[ + str, + "The unique identifier for the pipeline to fetch the audit log from. This ID is used to target a specific pipeline within HubSpot CRM.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/audit_getAudit'.", # noqa: E501 +]: + """Retrieves the audit log for a specified CRM pipeline. + + Call this tool to obtain a list of all changes made to a specified pipeline in HubSpot CRM, in reverse chronological order.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/audit".format( # noqa: UP032 + objectType=object_type, pipelineId=pipeline_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_all_pipelines( + context: ToolContext, + object_type: Annotated[ + str, "Specify the CRM object type (e.g., contacts, deals) to retrieve pipelines for." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}_getAll'." +]: + """Retrieve all pipelines for a specified object type. + + Use this tool to fetch all pipelines related to a specific object type in HubSpot CRM. This is useful for obtaining pipeline information for various CRM entities such as contacts, deals, etc.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}".format(objectType=object_type), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def create_crm_pipeline( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + pipeline_object_type: Annotated[ + str | None, + "Specify the type of CRM object for the pipeline, such as 'deals' or 'tickets'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/pipelines/{objectType}_create'." +]: + """Create a new CRM pipeline in HubSpot. + + Use this tool to create a new pipeline in HubSpot CRM with given property values. It returns the entire pipeline object, including its unique ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECRMPIPELINE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not pipeline_object_type: + missing_params.append(("pipeline_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMPIPELINE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMPIPELINE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}".format( # noqa: UP032 + objectType=pipeline_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECRMPIPELINE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_pipeline_stage_by_id( + context: ToolContext, + object_type: Annotated[ + str, + "The type of CRM object, such as 'deals' or 'tickets', to access the pipeline stage for.", + ], + pipeline_id: Annotated[ + str, + "The unique identifier for the pipeline in HubSpot CRM. Use this ID to specify which pipeline the stage belongs to.", # noqa: E501 + ], + stage_id: Annotated[ + str, "Unique ID of the pipeline stage to retrieve details from HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_getById'.", # noqa: E501 +]: + """Retrieve a specific pipeline stage by its ID. + + Use this tool to get details of a particular stage within a pipeline in HubSpot CRM, identified by its unique stage ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}".format( # noqa: UP032 + objectType=object_type, pipelineId=pipeline_id, stageId=stage_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def replace_pipeline_stage_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specifies the CRM object type like 'deals' or 'contacts' to identify the pipeline stage being replaced. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + pipeline_id: Annotated[ + str | None, + "The unique identifier for the pipeline whose stage properties are to be replaced. This must match the ID used in HubSpot CRM. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + pipeline_stage_id: Annotated[ + str | None, + "The unique identifier for the pipeline stage to be replaced. This is required to specify which stage's properties will be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_replace'.", # noqa: E501 +]: + """Replace and update a pipeline stage in HubSpot CRM. + + Use this tool to replace all properties of an existing pipeline stage in HubSpot CRM with the provided values. The modified stage's details are returned in the response. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["REPLACEPIPELINESTAGEPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + if not pipeline_id: + missing_params.append(("pipeline_id", "path")) + if not pipeline_stage_id: + missing_params.append(("pipeline_stage_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["REPLACEPIPELINESTAGEPROPERTIES"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["REPLACEPIPELINESTAGEPROPERTIES"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}".format( # noqa: UP032 + objectType=crm_object_type, pipelineId=pipeline_id, stageId=pipeline_stage_id + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["REPLACEPIPELINESTAGEPROPERTIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def delete_pipeline_stage( + context: ToolContext, + object_type: Annotated[ + str, + "Specify the type of CRM object (e.g., deals, tickets) for which the pipeline stage is being deleted.", # noqa: E501 + ], + pipeline_id: Annotated[ + str, "The unique ID of the pipeline containing the stage to be deleted." + ], + stage_identifier: Annotated[str, "The unique identifier of the pipeline stage to be deleted."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_archive'.", # noqa: E501 +]: + """Deletes a pipeline stage from HubSpot CRM. + + Use to remove a specific stage from a pipeline in HubSpot CRM by specifying the object type, pipeline ID, and stage ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}".format( # noqa: UP032 + objectType=object_type, pipelineId=pipeline_id, stageId=stage_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def update_pipeline_stage( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + pipeline_object_type: Annotated[ + str | None, + "The type of CRM object in the pipeline, such as 'deals' or 'tickets'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + pipeline_id: Annotated[ + str | None, + "A unique identifier for the pipeline to be updated. This is necessary to specify which pipeline contains the stage you want to modify. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + stage_id: Annotated[ + str | None, + "The unique identifier of the stage to be updated within the pipeline. This is required to specify which stage's details need modification. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_update'.", # noqa: E501 +]: + """Update a stage in a CRM pipeline. + + Use this tool to update the details of a specific stage within a CRM pipeline. It is useful when you need to modify the attributes of a pipeline stage, such as its name or order, to reflect changes in the sales or business process. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPIPELINESTAGE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not pipeline_object_type: + missing_params.append(("pipeline_object_type", "path")) + if not pipeline_id: + missing_params.append(("pipeline_id", "path")) + if not stage_id: + missing_params.append(("stage_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPIPELINESTAGE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPIPELINESTAGE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}".format( # noqa: UP032 + objectType=pipeline_object_type, pipelineId=pipeline_id, stageId=stage_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPIPELINESTAGE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_multiple_postal_mail_objects( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + include_archived: Annotated[ + bool | None, + "Set to true to include archived postal mail objects in the results. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/read_read'.", +]: + """Retrieve multiple postal mail objects by IDs or unique values. + + This tool retrieves multiple postal mail objects from HubSpot CRM using their internal IDs or unique property values. It is useful when you need to access detailed information on several postal mail entries at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["GETMULTIPLEPOSTALMAILOBJECTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["GETMULTIPLEPOSTALMAILOBJECTS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["GETMULTIPLEPOSTALMAILOBJECTS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["GETMULTIPLEPOSTALMAILOBJECTS"], + params=remove_none_values({"archived": include_archived}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_postal_mail_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/archive_archive'.", +]: + """Archive a batch of postal mail objects using their IDs. + + Use this tool to archive multiple postal mail objects in HubSpot CRM by providing their IDs. This is useful for managing large volumes of mailing data efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEPOSTALMAILBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEPOSTALMAILBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEPOSTALMAILBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEPOSTALMAILBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_postal_mail_records( + context: ToolContext, + associated_objects: Annotated[ + list[str] | None, + "A list of object types to retrieve associations for, such as contacts or companies.", + ] = None, + include_archived_records: Annotated[ + bool | None, "Include archived postal mail records if true; exclude them if false." + ] = False, + include_properties_history: Annotated[ + list[str] | None, + "Specify property names to include their history in the records. Use an array of strings.", + ] = None, + max_records: Annotated[ + int | None, "The maximum number of postal mail records to return. Must be an integer." + ] = 10, + pagination_cursor_after: Annotated[ + str | None, + "A cursor for pagination. Use it to retrieve the next set of postal mail records after a specific point.", # noqa: E501 + ] = None, + retrieve_specific_properties: Annotated[ + list[str] | None, + "List of specific properties to include in the response. Provide property names as strings.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/postal_mail_getPage'." +]: + """Retrieve postal mail records from the CRM. + + Use this tool to access postal mail records from the CRM. It is helpful for obtaining stored postal mail information.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/postal_mail", + method="GET", + params=remove_none_values({ + "limit": max_records, + "after": pagination_cursor_after, + "properties": retrieve_specific_properties, + "propertiesWithHistory": include_properties_history, + "associations": associated_objects, + "archived": include_archived_records, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_postal_mail_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/postal_mail_create'." +]: + """Create a postal mail object in HubSpot CRM. + + This tool is used to create a postal mail object in the HubSpot CRM with the provided properties. It returns a copy of the created object, including its unique identifier. Use this tool to record postal mail interactions in your CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILOBJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILOBJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILOBJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILOBJECT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_postal_mail_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/create_create'.", +]: + """Create a batch of postal mail objects in HubSpot CRM. + + Use this tool to create multiple postal mail records within the HubSpot CRM system. Ideal for handling bulk postal mail operations efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEPOSTALMAILBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_postal_mail_in_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/upsert_upsert'.", +]: + """Create or update postal mail records in HubSpot CRM. + + This tool creates or updates postal mail records in HubSpot CRM based on a unique property value specified by the `idProperty` query parameter. Use it to ensure postal mail records are up-to-date and accurately maintained. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTPOSTALMAILINHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTPOSTALMAILINHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTPOSTALMAILINHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTPOSTALMAILINHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_postal_mail_by_id( + context: ToolContext, + postal_mail_id: Annotated[ + str, + "The unique identifier for the postal mail record to retrieve details from HubSpot CRM.", + ], + identify_by_id_property: Annotated[ + str | None, + "Specifies which property will be used as the primary identifier. Accepts a string that represents the property within the postal mail object that should be used to identify and retrieve details.", # noqa: E501 + ] = None, + include_archived: Annotated[ + bool | None, "Set to true to include archived postal mail records in the response." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "A list of property names for which history should be returned. Accepts an array of strings.", # noqa: E501 + ] = None, + related_objects_associations: Annotated[ + list[str] | None, + "List of string identifiers representing related objects to retrieve alongside the postal mail record.", # noqa: E501 + ] = None, + specified_properties: Annotated[ + list[str] | None, + "A list of specific postal mail properties to retrieve. Leave empty to get all properties.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/postal_mail/{postalMailId}_getById'.", +]: + """Retrieve details of a postal mail record by ID from HubSpot CRM. + + Use this tool to get detailed information about a specific postal mail record in HubSpot CRM by providing the postal mail ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId}".format( # noqa: UP032 + postalMailId=postal_mail_id + ), + method="GET", + params=remove_none_values({ + "properties": specified_properties, + "propertiesWithHistory": properties_with_history, + "associations": related_objects_associations, + "archived": include_archived, + "idProperty": identify_by_id_property, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_postal_mail( + context: ToolContext, + postal_mail_id: Annotated[ + str, "The unique identifier of the postal mail object to be archived." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/postal_mail/{postalMailId}_archive'.", +]: + """Archive a postal mail object in HubSpot CRM. + + This tool moves a postal mail object, specified by its ID, to the recycling bin in HubSpot CRM. Use this tool when you need to archive a specific postal mail entry.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId}".format( # noqa: UP032 + postalMailId=postal_mail_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_postal_mail_record( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + postal_mail_id: Annotated[ + str | None, + "A unique identifier for the postal mail record to be updated in HubSpot CRM. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + property_identifier: Annotated[ + str | None, + "Specify the property key of the postal mail record to identify which field to update. This is typically the name of the field in the CRM record. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/postal_mail/{postalMailId}_update'.", +]: + """Update a postal mail record in HubSpot CRM. + + Use this tool to update an existing postal mail record in HubSpot CRM by specifying the postalMailId of the record to be updated. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPOSTALMAILRECORD"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not postal_mail_id: + missing_params.append(("postal_mail_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPOSTALMAILRECORD"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPOSTALMAILRECORD"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId}".format( # noqa: UP032 + postalMailId=postal_mail_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPOSTALMAILRECORD"], + params=remove_none_values({"idProperty": property_identifier}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_multiple_postal_mails( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/update_update'.", +]: + """Update multiple postal mail records at once in HubSpot CRM. + + Use this tool to update several postal mail objects within HubSpot CRM in a single request, streamlining batch modifications. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEPOSTALMAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEPOSTALMAILS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEPOSTALMAILS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEPOSTALMAILS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_postal_mail_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/search_doSearch'.", +]: + """Search for postal mail objects in HubSpot CRM. + + Use this tool to search for postal mail records in HubSpot CRM based on specific criteria. This is useful when you need to retrieve details about postal interactions stored within the CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHPOSTALMAILHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHPOSTALMAILHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHPOSTALMAILHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/postal_mail/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHPOSTALMAILHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def archive_products_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/products/batch/archive_archive'.", +]: + """Archive a batch of products by ID in HubSpot CRM. + + Use this tool to archive multiple products in HubSpot CRM by providing their IDs. It should be called when you need to bulk remove products from the CRM database. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEPRODUCTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEPRODUCTSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEPRODUCTSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEPRODUCTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.read"])) +async def get_products_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "Provide a comma-separated list of object types to retrieve associated IDs for. Ignored if not existing.", # noqa: E501 + ] = None, + include_properties_with_history: Annotated[ + list[str] | None, + "Comma separated list of product properties to include along with their history. Reduces maximum results per request if used.", # noqa: E501 + ] = None, + maximum_results_per_page: Annotated[ + int | None, "The maximum number of results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, "The cursor token for the last read resource, used for paged responses." + ] = None, + product_properties_to_return: Annotated[ + list[str] | None, + "Comma-separated properties to include in the response. Any non-existent properties for the requested objects will be ignored.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/products_getPage'." +]: + """Fetch a page of products from HubSpot CRM. + + Use this tool to retrieve a page of products from the HubSpot CRM. You can control the returned product details using the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/products", + method="GET", + params=remove_none_values({ + "limit": maximum_results_per_page, + "after": paging_cursor_token, + "properties": product_properties_to_return, + "propertiesWithHistory": include_properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def create_product_in_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/products_create'." +]: + """Create a new product in HubSpot CRM. + + Use this tool to create a product in HubSpot CRM with specified properties. It returns the created product details, including the ID, which can be used for further referencing or operations. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEPRODUCTINHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPRODUCTINHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEPRODUCTINHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEPRODUCTINHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.read"])) +async def search_hubspot_products( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/products/search_doSearch'.", +]: + """Search for products in HubSpot CRM. + + Use this tool to search for and retrieve product information from HubSpot CRM. It calls the endpoint designed to query products based on specified criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPRODUCTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPRODUCTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPRODUCTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTPRODUCTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.read"])) +async def retrieve_hubspot_product_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + only_archived: Annotated[ + bool | None, + "Set to true to retrieve only archived product records. False returns unarchived records. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/products/batch/read_read'.", +]: + """Retrieve HubSpot product records by ID or unique property. + + This tool retrieves HubSpot CRM product records using a record ID or a custom unique value property (`idProperty`). It is useful for accessing detailed product data stored in HubSpot CRM based on specific identifiers. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTPRODUCTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTPRODUCTRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTPRODUCTRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTPRODUCTRECORDS"], + params=remove_none_values({"archived": only_archived}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def create_batch_of_products( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/products/batch/create_create'.", +]: + """Create a batch of products in HubSpot CRM. + + Use this tool to add multiple products to the HubSpot CRM in a single batch. Ideal for updating product catalogs efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFPRODUCTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFPRODUCTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFPRODUCTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFPRODUCTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def upsert_hubspot_products_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/products/batch/upsert_upsert'.", +]: + """Batch create or update HubSpot product records. + + This tool is used to create or update HubSpot product records in bulk, identified by a unique property value specified by the `idProperty`. It should be called when there's a need to synchronize or modify multiple product entries in the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTPRODUCTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTPRODUCTSBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTPRODUCTSBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTPRODUCTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.read"])) +async def get_product_details_by_id( + context: ToolContext, + product_id: Annotated[ + str, + "A unique identifier for the product. Can be the internal ID or any unique property as specified by `idProperty`.", # noqa: E501 + ], + properties_to_return: Annotated[ + list[str] | None, + "A list of product properties to include in the response. Any missing properties will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List properties to return with their history of past values, separated by commas. Ignored if not present in object.", # noqa: E501 + ] = None, + retrieve_associated_object_ids: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Any non-existent associations will be ignored.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived results. If false, only non-archived results are returned.", # noqa: E501 + ] = False, + unique_property_name: Annotated[ + str | None, + "Specify the property name with unique values for the product object, instead of default productId.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/products/{productId}_getById'.", +]: + """Retrieve product details using a product ID. + + This tool retrieves the details of a product in HubSpot CRM using its product ID. It can also use any unique property specified by the `idProperty` query parameter. Use this tool to obtain specific product information from HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/products/{productId}".format( # noqa: UP032 + productId=product_id + ), + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_ids, + "archived": return_archived_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def remove_product( + context: ToolContext, + product_id: Annotated[ + str, "The unique identifier of the product to be archived in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/products/{productId}_archive'.", +]: + """Archive a product by moving it to the recycling bin. + + Use this tool to move a product, identified by its productId, to the recycling bin in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/products/{productId}".format( # noqa: UP032 + productId=product_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def update_product_info( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + product_id: Annotated[ + str | None, + "The internal object ID of the product to be updated. This identifies the specific product in HubSpot CRM for the update operation. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The unique property name used to identify the product. It should be a string representing a property with unique values. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/products/{productId}_update'.", +]: + """Partially update product information in HubSpot CRM. + + This tool updates specific properties of a product identified by `productId` in HubSpot CRM. It will override existing property values, and returning errors for read-only or non-existent properties. Use when you need to modify product attributes such as name, price, or description. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPRODUCTINFO"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not product_id: + missing_params.append(("product_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPRODUCTINFO"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPRODUCTINFO"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/{productId}".format( # noqa: UP032 + productId=product_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPRODUCTINFO"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.products.write"])) +async def update_hubspot_products_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/products/batch/update_update'.", +]: + """Update a batch of HubSpot products by ID or unique properties. + + Use this tool to update multiple products in HubSpot CRM with new details by internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTPRODUCTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTPRODUCTSBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTPRODUCTSBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/products/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTPRODUCTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def archive_crm_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specify the type of CRM object (e.g., 'contacts', 'companies') for which the properties should be archived. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/batch/archive'.", +]: + """Archive a list of properties in HubSpot CRM. + + Use this tool to archive a provided list of properties within a specified object type in HubSpot CRM. It returns a confirmation of successful archiving, regardless of the properties' initial state. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECRMPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECRMPROPERTIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECRMPROPERTIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/batch/archive".format( # noqa: UP032 + objectType=crm_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECRMPROPERTIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def read_property_group( + context: ToolContext, + object_type: Annotated[str, "Specify the type of CRM object, such as 'contacts' or 'deals'."], + property_group_name: Annotated[str, "The name of the property group to be retrieved."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/properties/{objectType}/groups/{groupName}'.", +]: + """Retrieve details of a property group by its name. + + Use this tool to get detailed information about a property group identified by {groupName} within a specified object type in HubSpot CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName}".format( # noqa: UP032 + objectType=object_type, groupName=property_group_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def delete_property_group( + context: ToolContext, + crm_object_type: Annotated[ + str, "Specify the type of CRM object, such as 'contacts', 'companies', etc." + ], + property_group_name: Annotated[ + str, + "The name of the property group to delete. This identifies which group to move to the recycling bin in HubSpot CRM.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/properties/{objectType}/groups/{groupName}'.", +]: + """Delete a property group and move it to recycling bin. + + Use this tool to move a specified property group to the recycling bin in HubSpot CRM. Ideal when a property group is no longer needed and should be removed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName}".format( # noqa: UP032 + objectType=crm_object_type, groupName=property_group_name + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def update_property_group( + context: ToolContext, + object_type: Annotated[ + str, "Specifies the type of object in HubSpot CRM (e.g., contacts, companies)." + ], + property_group_name: Annotated[ + str, "The unique name of the property group to be updated in HubSpot CRM." + ], + property_group_display_order: Annotated[ + int | None, + "Set the display order of the property group. Use positive integers for ordering, or -1 to display after positive values.", # noqa: E501 + ] = None, + property_group_label: Annotated[ + str | None, "A human-readable label for the property group in HubSpot." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/properties/{objectType}/groups/{groupName}'.", +]: + """Update fields in a specified property group. + + This tool performs a partial update on a property group identified by {groupName} in HubSpot CRM. It overwrites the provided fields in the property group. Useful for modifying specific attributes within a property group without altering the entire group.""" # noqa: E501 + request_data: Any = { + "displayOrder": property_group_display_order, + "label": property_group_label, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName}".format( # noqa: UP032 + objectType=object_type, groupName=property_group_name + ), + method="PATCH", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def read_property( + context: ToolContext, + crm_object_type: Annotated[ + str, + "Specify the CRM object type, such as 'contact' or 'company', to retrieve the property for.", # noqa: E501 + ], + property_name: Annotated[ + str, + "The unique name of the property to retrieve. This should match the property name in HubSpot CRM.", # noqa: E501 + ], + property_specifications: Annotated[ + str | None, + "Specify the details or attributes of the property to retrieve. Use a comma-separated list for multiple specifications.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to True to return only archived property results." + ] = False, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/properties/{objectType}/{propertyName}'.", +]: + """Retrieve CRM property details by name and type. + + This tool fetches details of a specific property from HubSpot CRM by providing the property name and object type. Use this tool to access property information when dealing with HubSpot CRM data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName}".format( # noqa: UP032 + objectType=crm_object_type, propertyName=property_name + ), + method="GET", + params=remove_none_values({ + "archived": return_archived_only, + "properties": property_specifications, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def delete_property_hubspot_crm( + context: ToolContext, + object_type: Annotated[ + str, "Specify the type of object in HubSpot CRM (e.g., 'contacts', 'companies')." + ], + property_name: Annotated[ + str, + "The name of the property to delete, identified by its unique name within the object type.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/properties/{objectType}/{propertyName}'.", +]: + """Delete a property in HubSpot CRM and move it to the recycling bin. + + Use this tool to delete a specific property from the HubSpot CRM by specifying the object type and property name. This action moves the property to the recycling bin.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName}".format( # noqa: UP032 + objectType=object_type, propertyName=property_name + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def update_property_value( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "Specify the type of CRM object (e.g., 'contacts', 'deals') to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + property_identifier: Annotated[ + str | None, + "The unique name of the CRM property to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/properties/{objectType}/{propertyName}'.", +]: + """Update specific fields of a CRM property partially. + + Use this tool to partially update specific fields of a CRM property identified by its name. Only the specified fields will be overwritten. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEPROPERTYVALUE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + if not property_identifier: + missing_params.append(("property_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPROPERTYVALUE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEPROPERTYVALUE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName}".format( # noqa: UP032 + objectType=crm_object_type, propertyName=property_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEPROPERTYVALUE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def read_batch_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + crm_object_type: Annotated[ + str | None, + "The type of CRM object for which properties are being read (e.g., contacts, deals). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/batch/read'.", +]: + """Fetches a batch of properties for a specified CRM object type. + + Use this tool to retrieve a list of properties for a given object type in the CRM. This can be useful when you need detailed information about multiple properties at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["READBATCHPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not crm_object_type: + missing_params.append(("crm_object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["READBATCHPROPERTIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["READBATCHPROPERTIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/batch/read".format( # noqa: UP032 + objectType=crm_object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["READBATCHPROPERTIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def create_batch_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "Specifies the type of CRM object for which to create properties (e.g., contacts, deals, companies). Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/batch/create'.", +]: + """Create a batch of properties for a specified object type in HubSpot. + + This tool facilitates the creation of multiple properties at once for any specified object type in HubSpot CRM, using the standard rules applied to individual property creation. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHPROPERTIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHPROPERTIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create".format( # noqa: UP032 + objectType=object_type + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHPROPERTIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def retrieve_hubspot_properties( + context: ToolContext, + object_type: Annotated[ + str, "Specifies the HubSpot object type (e.g., contact, deal) to retrieve properties for." + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only results that have been archived. Otherwise, return all properties.", # noqa: E501 + ] = False, + selected_properties: Annotated[ + str | None, + "A comma-separated list of specific properties to retrieve for the object type. Leave empty to retrieve all properties.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/properties/{objectType}'." +]: + """Retrieve all properties for a HubSpot object type. + + Use this tool to read all existing properties for a specified object type in HubSpot CRM. It provides property details relevant to the chosen object type within a HubSpot account.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}".format(objectType=object_type), # noqa: UP032 + method="GET", + params=remove_none_values({ + "archived": return_archived_only, + "properties": selected_properties, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def create_hubspot_crm_property( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_type: Annotated[ + str | None, + "Specify the object type to which the new property will be added, such as contact, company, or deal. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/properties/{objectType}'." +]: + """Create a new property for a specified object type in HubSpot CRM. + + This tool creates and returns a new property for the specified object type in HubSpot CRM. It should be used when you need to add a custom property to an object such as a contact, company, or deal in HubSpot. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCRMPROPERTY"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_type: + missing_params.append(("object_type", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCRMPROPERTY"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCRMPROPERTY"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/properties/{objectType}".format(objectType=object_type), # noqa: UP032 + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTCRMPROPERTY"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def retrieve_hubspot_property_groups( + context: ToolContext, + hubspot_object_type: Annotated[ + str, + "Specify the HubSpot object type to retrieve property groups, such as 'contacts', 'companies', or 'deals'.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/properties/{objectType}/groups'." +]: + """Retrieve HubSpot CRM property groups for a specified object type. + + This tool retrieves all existing property groups for a specified object type within a HubSpot account. Use it to access property group information for organizing and managing CRM data effectively.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/groups".format( # noqa: UP032 + objectType=hubspot_object_type + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write", + ], + ) +) +async def create_property_group( + context: ToolContext, + internal_property_group_name: Annotated[ + str, "The unique name used internally to reference the property group via the API." + ], + object_type: Annotated[ + str, "Specifies the CRM object type for the property group (e.g., contacts, companies)." + ], + property_group_label: Annotated[ + str, "A human-readable label for the property group, displayed in HubSpot." + ], + property_group_display_order: Annotated[ + int | None, + "Defines the display order of the property group, with lowest positive integers displayed first. Use -1 to display after positive values.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/groups'." +]: + """Create a new property group in HubSpot CRM. + + This tool creates and returns a new property group for a specified object type in HubSpot CRM. Use it when you need to organize CRM properties into groups.""" # noqa: E501 + request_data: Any = { + "name": internal_property_group_name, + "displayOrder": property_group_display_order, + "label": property_group_label, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/properties/{objectType}/groups".format( # noqa: UP032 + objectType=object_type + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def get_property_validation_rules( + context: ToolContext, + object_type_id: Annotated[ + str, + "The unique identifier for the object type in HubSpot CRM whose property validation rules you want to retrieve. This is a string value.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/property-validations/{objectTypeId}'.", +]: + """Retrieve validation rules for properties of a given object in HubSpot CRM. + + Use this tool to get detailed validation rules for all properties associated with a specified object type ID in HubSpot CRM. This can be helpful for understanding constraints and rules applied to object properties.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/property-validations/{objectTypeId}".format( # noqa: UP032 + objectTypeId=object_type_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def fetch_property_validation( + context: ToolContext, + object_type_id: Annotated[ + str, + 'The unique identifier for the object type in HubSpot CRM, such as "contacts" or "deals".', + ], + property_name: Annotated[ + str, + "The name of the property whose validation rules you want to retrieve in HubSpot CRM. It must match exactly to identify the property correctly.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/property-validations/{objectTypeId}/{propertyName}'.", # noqa: E501 +]: + """Retrieve validation rules for a specific property in HubSpot CRM. + + This tool is used to read the validation rules of a property identified by {propertyName} within a specified object type in HubSpot CRM. It helps to understand the constraints and validations applied to a property.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/property-validations/{objectTypeId}/{propertyName}".format( # noqa: UP032 + objectTypeId=object_type_id, propertyName=property_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def archive_quotes_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/archive_archive'.", +]: + """Archive a batch of quotes in HubSpot CRM. + + Use this tool to archive multiple quotes in HubSpot CRM by providing their IDs. It should be called when there's a need to bulk archive quotes to manage CRM records efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEQUOTESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEQUOTESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEQUOTESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEQUOTESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.read"])) +async def get_quotes_page( + context: ToolContext, + paging_cursor_token: Annotated[ + str | None, + "The token to identify the last read resource for pagination. Use it to get the next page of results.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history. Reduces max quotes per request.", + ] = None, + quote_properties_to_return: Annotated[ + list[str] | None, + "List the properties to retrieve for each quote. Only present properties will be returned.", + ] = None, + results_limit: Annotated[ + int | None, + "The maximum number of quote results to display per page. Accepts an integer value.", + ] = 10, + retrieve_associated_ids_for_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Non-existing associations will be ignored.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, "Set to true to return only archived results. False to include active results." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/quotes_getPage'." +]: + """Retrieve a page of quotes with specified properties. + + Use this tool to read a page of quotes from HubSpot CRM. You can control the details returned by specifying properties through query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/quotes", + method="GET", + params=remove_none_values({ + "limit": results_limit, + "after": paging_cursor_token, + "properties": quote_properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_ids_for_object_types, + "archived": return_archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def create_hubspot_quote( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/quotes_create'." +]: + """Create a new quote in HubSpot CRM. + + Use this tool to create a new quote in HubSpot CRM with specified properties. It returns the created quote, including its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTQUOTE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTQUOTE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTQUOTE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTQUOTE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.read"])) +async def get_quote_by_id( + context: ToolContext, + quote_id: Annotated[ + str, + "The ID or unique property value of the quote to be retrieved. This identifies the specific quote in HubSpot CRM.", # noqa: E501 + ], + included_properties: Annotated[ + list[str] | None, + "List of properties to be returned in the response. If a property is not present, it will be ignored. Input should be an array of strings.", # noqa: E501 + ] = None, + only_return_archived: Annotated[ + bool | None, "Set to true to only return results that have been archived for the quote." + ] = False, + properties_with_history: Annotated[ + list[str] | None, + "Comma-separated list of properties to return with their value history. Ignored if not present.", # noqa: E501 + ] = None, + retrieve_associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for; ignored if non-existent.", + ] = None, + unique_property_name: Annotated[ + str | None, + "The property name with unique values for the quote object, used in the retrieval process.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/quotes/{quoteId}_getById'." +]: + """Retrieve details of a quote by its ID. + + Fetches a quote from HubSpot CRM using its ID or a unique property value. Allows control over returned properties.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/quotes/{quoteId}".format(quoteId=quote_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": included_properties, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_types, + "archived": only_return_archived, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def archive_quote( + context: ToolContext, + quote_identifier: Annotated[ + str, "The unique identifier for the quote to be archived in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/quotes/{quoteId}_archive'.", +]: + """Archive a quote by moving it to the recycling bin. + + This tool archives a quote in HubSpot CRM, identified by its `quoteId`, by moving it to the recycling bin. Use this tool when you need to delete a quote temporarily.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/quotes/{quoteId}".format( # noqa: UP032 + quoteId=quote_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def update_quote_information( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + quote_identifier: Annotated[ + str | None, + "The identifier of the quote to be updated. This can be the internal ID or a unique property value specified by `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property with unique values for identifying the quote object. Used instead of `quoteId`. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/quotes/{quoteId}_update'.", +]: + """Update a quote's details in HubSpot CRM. + + Use this tool to perform a partial update of a quote in HubSpot CRM identified by `quoteId` or a unique property value. It allows overwriting specific property values, but read-only or invalid properties will cause an error. Properties can be cleared by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEQUOTEINFORMATION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not quote_identifier: + missing_params.append(("quote_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEQUOTEINFORMATION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEQUOTEINFORMATION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/{quoteId}".format( # noqa: UP032 + quoteId=quote_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEQUOTEINFORMATION"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def update_quote_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/update_update'.", +]: + """Update a batch of quotes using internal ID or property values. + + Use this tool to update multiple quotes at once in the CRM. It should be called when you need to modify details of several quotes by their internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEQUOTEBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEQUOTEBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEQUOTEBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEQUOTEBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def create_or_update_quotes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/upsert_upsert'.", +]: + """Create or update quote records in HubSpot CRM. + + This tool is used to create or update quote records in HubSpot CRM based on a unique property value specified by `idProperty`. Use it when you need to ensure quotes are updated or added to the CRM system efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEORUPDATEQUOTES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEORUPDATEQUOTES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEORUPDATEQUOTES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEORUPDATEQUOTES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.write"])) +async def create_batch_of_quotes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/create_create'.", +]: + """Creates a batch of quotes in HubSpot CRM. + + This tool is used to create multiple quotes at once using HubSpot CRM's batch creation endpoint. Ideal for automating the quote generation process for multiple clients or deals. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFQUOTES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFQUOTES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFQUOTES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFQUOTES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.read"])) +async def search_quotes_in_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/quotes/search_doSearch'." +]: + """Search for quotes in HubSpot CRM. + + Use this tool to perform a search for quotes stored in HubSpot CRM. Useful for retrieving information about sales quotes based on specific criteria or parameters. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHQUOTESINHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHQUOTESINHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHQUOTESINHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHQUOTESINHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.quotes.read"])) +async def retrieve_quotes_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + archived_results_only: Annotated[ + bool | None, + "Specify `true` to return only archived results; `false` to include non-archived results. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/read_read'." +]: + """Retrieve multiple quotes by ID or custom property. + + This tool retrieves multiple quote records by their IDs or a custom unique value property. It should be called when you need to access specific quotes in batch format from the HubSpot CRM. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEQUOTESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEQUOTESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEQUOTESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/quotes/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEQUOTESBATCH"], + params=remove_none_values({"archived": archived_results_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + "crm.schemas.custom.read", + "crm.objects.custom.read", + ], + ) +) +async def get_hubspot_crm_object_schemas( + context: ToolContext, + return_archived_only: Annotated[ + bool | None, "Set to True to return only results that have been archived." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm-object-schemas/v3/schemas_getAll'." +]: + """Retrieve HubSpot CRM object schemas. + + Call this tool to fetch all object schemas from the HubSpot CRM, which can help understand data structure within the CRM.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas", + method="GET", + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.schemas.custom.write"])) +async def create_crm_object_schema( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm-object-schemas/v3/schemas_create'." +]: + """Create a new CRM object schema in HubSpot. + + Use this tool to create a new object schema in HubSpot's CRM. This is useful when you need to define a new structure for CRM objects tailored to specific business needs. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECRMOBJECTSCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMOBJECTSCHEMA"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMOBJECTSCHEMA"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECRMOBJECTSCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + "crm.schemas.custom.read", + "crm.objects.custom.read", + ], + ) +) +async def get_crm_object_schema( + context: ToolContext, + object_type: Annotated[ + str, "The fully qualified name or object type ID of the CRM schema to retrieve." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm-object-schemas/v3/schemas/{objectType}_getById'.", +]: + """Retrieve a CRM object schema by its type. + + Use this tool to get detailed information about a specific CRM object schema by providing the object type. This helps in understanding the structure and properties of the CRM object within HubSpot.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}".format( # noqa: UP032 + objectType=object_type + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.schemas.custom.write"])) +async def delete_crm_object_schema( + context: ToolContext, + object_type_identifier: Annotated[ + str, "The fully qualified name or object type ID of the schema to delete." + ], + return_only_archived_results: Annotated[ + bool | None, "Set to True to return only archived results." + ] = False, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm-object-schemas/v3/schemas/{objectType}_archive'.", +]: + """Delete a CRM object schema in HubSpot. + + This tool deletes a specified CRM object schema in HubSpot. Use it when you need to remove an existing schema, ensuring it's no longer accessible or in use.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}".format( # noqa: UP032 + objectType=object_type_identifier + ), + method="DELETE", + params=remove_none_values({"archived": return_only_archived_results}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.schemas.custom.write"])) +async def update_crm_object_schema( + context: ToolContext, + object_type_identifier: Annotated[ + str, "Fully qualified name or object type ID of your CRM schema for updates." + ], + clear_description: Annotated[ + bool | None, "Set to true to clear the description field for the object type schema." + ] = None, + object_description: Annotated[ + str | None, + "A description for the CRM object schema, providing details about its purpose or usage in HubSpot.", # noqa: E501 + ] = None, + object_singular_name: Annotated[ + str | None, "The word representing a single object. This cannot be changed later." + ] = None, + plural_labels: Annotated[ + str | None, + "Specify the word representing multiple instances of the object type. This value is permanent and cannot be changed after setting.", # noqa: E501 + ] = None, + primary_display_property: Annotated[ + str | None, + "The primary property's name for this object, displayed prominently on the HubSpot record page.", # noqa: E501 + ] = None, + required_properties: Annotated[ + list[str] | None, + "List of property names that must be provided when creating an object of this type in HubSpot.", # noqa: E501 + ] = None, + restorable: Annotated[ + bool | None, + "Indicates if the object can be restored after deletion. Accepts a boolean value.", + ] = None, + searchable_properties: Annotated[ + list[str] | None, + "List of property names to be indexed for HubSpot's product search, enhancing searchability of the CRM object type.", # noqa: E501 + ] = None, + secondary_display_properties: Annotated[ + list[str] | None, + "Names of secondary properties displayed on the HubSpot record page for this object type.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm-object-schemas/v3/schemas/{objectType}_update'.", +]: + """Update a CRM object's schema in HubSpot. + + This tool updates the schema of a specified CRM object type in HubSpot. Call this tool when you need to modify the structure or attributes of an existing CRM object schema.""" # noqa: E501 + request_data: Any = { + "secondaryDisplayProperties": secondary_display_properties, + "requiredProperties": required_properties, + "searchableProperties": searchable_properties, + "clearDescription": clear_description, + "primaryDisplayProperty": primary_display_property, + "description": object_description, + "restorable": restorable, + "labels": {"plural": plural_labels, "singular": object_singular_name}, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}".format( # noqa: UP032 + objectType=object_type_identifier + ), + method="PATCH", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.schemas.custom.write"])) +async def create_crm_object_association( + context: ToolContext, + crm_object_type_schema: Annotated[ + str, + "Fully qualified name or object type ID of your CRM object schema to create the association.", # noqa: E501 + ], + primary_object_type_id: Annotated[ + str, "ID of the primary object type to link from in the CRM system." + ], + target_object_type_id: Annotated[ + str, "ID of the target object type to link to in the CRM association." + ], + association_name: Annotated[ + str | None, + "A unique name for the association between CRM objects. This helps identify the link.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm-object-schemas/v3/schemas/{objectType}/associations_createAssociation'.", # noqa: E501 +]: + """Create an association between HubSpot CRM objects. + + This tool creates an association between specified HubSpot CRM objects. Use it when you need to link different CRM objects (like contacts and companies) within the HubSpot platform.""" # noqa: E501 + request_data: Any = { + "fromObjectTypeId": primary_object_type_id, + "name": association_name, + "toObjectTypeId": target_object_type_id, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/associations".format( # noqa: UP032 + objectType=crm_object_type_schema + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.schemas.custom.write"])) +async def delete_crm_association( + context: ToolContext, + association_id: Annotated[str, "Unique ID of the association to be removed."], + schema_object_type: Annotated[ + str, + "The fully qualified name or object type ID of your schema to identify which CRM object to target.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}_archiveAssociation'.", # noqa: E501 +]: + """Remove an association between CRM object schemas. + + This tool is used to delete an association between specified CRM object schemas in HubSpot. It should be called when there is a need to remove or archive a link between two object types.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}".format( # noqa: UP032 + objectType=schema_object_type, associationIdentifier=association_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.read"])) +async def fetch_hubspot_object_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Indicate if only archived records should be returned when retrieving HubSpot CRM data. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/read'." +]: + """Retrieve HubSpot CRM records by ID or custom property. + + Use this tool to retrieve HubSpot CRM records by specifying record IDs or by using a custom unique value property with the `idProperty` parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["FETCHHUBSPOTOBJECTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["FETCHHUBSPOTOBJECTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["FETCHHUBSPOTOBJECTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["FETCHHUBSPOTOBJECTRECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def update_services_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/update'." +]: + """Update multiple service records in HubSpot CRM. + + Use this tool to update a batch of service records in the HubSpot CRM by their internal IDs or unique property values. Suitable for synchronizing or modifying multiple records efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATESERVICESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATESERVICESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATESERVICESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATESERVICESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def hubspot_crm_upsert_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/upsert'." +]: + """Create or update unique records in HubSpot CRM. + + This tool allows for the creation or update of CRM records in HubSpot, identified by a unique property. Use it when you need to batch upload or modify records based on a unique identifier. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["HUBSPOTCRMUPSERTRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["HUBSPOTCRMUPSERTRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["HUBSPOTCRMUPSERTRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["HUBSPOTCRMUPSERTRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.read"])) +async def hubspot_search_custom_objects( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162/search'." +]: + """Search for custom objects in HubSpot CRM. + + Use this tool to search for custom objects within the HubSpot CRM. It should be called when you need to retrieve specific custom object data based on certain criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["HUBSPOTSEARCHCUSTOMOBJECTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["HUBSPOTSEARCHCUSTOMOBJECTS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["HUBSPOTSEARCHCUSTOMOBJECTS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["HUBSPOTSEARCHCUSTOMOBJECTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def archive_services_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/archive'." +]: + """Archive multiple services using their IDs in bulk. + + Use this tool to archive a batch of services in the CRM by providing their IDs. This is useful for managing large sets of records efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVESERVICESBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVESERVICESBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVESERVICESBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVESERVICESBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.read"])) +async def get_hubspot_object_by_id( + context: ToolContext, + hubspot_crm_service_id: Annotated[ + str, + "The unique identifier (service ID) of the HubSpot CRM object to retrieve. This can be the internal object ID or any unique property defined by the `idProperty`.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types whose associated IDs should be retrieved. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return along with their history for a HubSpot CRM object. Properties should be specified as strings in the list.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived results. False returns non-archived results.", + ] = False, + return_properties_list: Annotated[ + list[str] | None, + "A list of properties to be returned in the response. Non-existing properties will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, "Specify the name of a property with unique values for the object." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-162/{serviceId}'." +]: + """Retrieve a HubSpot CRM object using its service ID. + + This tool is used to read a specific HubSpot CRM object identified by its `serviceId`. It can optionally use any unique property value by specifying the `idProperty`. The returned data can be customized with the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-162/{serviceId}".format( # noqa: UP032 + serviceId=hubspot_crm_service_id + ), + method="GET", + params=remove_none_values({ + "properties": return_properties_list, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def delete_object_hubspot( + context: ToolContext, + object_service_id: Annotated[ + str, "The unique identifier for the object to be moved to the recycling bin in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/0-162/{serviceId}'." +]: + """Move an object to the recycling bin in HubSpot CRM. + + Use this tool to delete an object identified by `serviceId` within the HubSpot CRM, moving it to the recycling bin.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-162/{serviceId}".format( # noqa: UP032 + serviceId=object_service_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def edit_hubspot_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + object_identifier: Annotated[ + str | None, + "The unique identifier or `{serviceId}` for the object to be updated. This can be an internal object ID or a unique property value when used with `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a unique property for the object, used instead of the internal ID if specified. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/0-162/{serviceId}'." +]: + """Partially update a HubSpot CRM object with specified properties. + + This tool performs a partial update on a HubSpot CRM object identified by the `serviceId` or a unique property value using the `idProperty` query parameter. It overwrites provided properties while ensuring read-only or non-existent properties result in errors. Properties can be cleared with an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["EDITHUBSPOTOBJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not object_identifier: + missing_params.append(("object_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["EDITHUBSPOTOBJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["EDITHUBSPOTOBJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/{serviceId}".format( # noqa: UP032 + serviceId=object_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["EDITHUBSPOTOBJECT"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.read"])) +async def read_services_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for each service. Ignored if associations do not exist.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, "The cursor token from the last read to retrieve the next page of results." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of properties to return with their history of values. If absent, properties are ignored. Reduces max services per request.", # noqa: E501 + ] = None, + requested_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to include in the response. Non-existent properties will be ignored.", # noqa: E501 + ] = None, + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived results; false to include non-archived results.", + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/0-162'."]: + """Retrieve a page of services with customizable properties. + + This tool retrieves a page of services from the HubSpot CRM API, allowing customization of returned data via the `properties` query parameter. Use this tool to access service information efficiently.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/0-162", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": requested_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def create_service_record( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162'."]: + """Create a service record in HubSpot CRM. + + This tool creates a new service object in HubSpot CRM with the specified properties and returns the created object, including its ID. It's useful for adding new service records to the CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATESERVICERECORD"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATESERVICERECORD"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATESERVICERECORD"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATESERVICERECORD"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.services.write"])) +async def create_batch_of_services( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/create'." +]: + """Create a batch of services in HubSpot CRM. + + Use this tool to create multiple service entries at once within HubSpot CRM. This is useful for efficiently managing and organizing service-related data. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHOFSERVICES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFSERVICES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHOFSERVICES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/0-162/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHOFSERVICES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def archive_hubspot_tasks( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/archive_archive'.", +]: + """Archive multiple HubSpot tasks by their IDs. + + Use this tool to archive a batch of tasks in HubSpot CRM by specifying their IDs. It should be called when you need to update the status of tasks to archived. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTTASKS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTTASKS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTTASKS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEHUBSPOTTASKS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_task_details( + context: ToolContext, + task_id: Annotated[ + str, + "The unique identifier for the HubSpot CRM task. Retrieve specific task details using this ID.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "List of object types to retrieve associated IDs for. Returns IDs of related objects.", + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their previous values. Comma-separated and ignored if not present.", # noqa: E501 + ] = None, + requested_properties: Annotated[ + list[str] | None, + "List of properties to return for the task. Only available properties will be returned.", + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to return only archived results." + ] = False, + unique_property_name: Annotated[ + str | None, "Specify the name of the property with unique values to identify the task." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/tasks/{taskId}_getById'." +]: + """Retrieve HubSpot CRM task details using task ID. + + Call this tool to get detailed information about a specific task in HubSpot CRM by providing the task ID. Modify the returned data using query parameters if needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tasks/{taskId}".format(taskId=task_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": requested_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def delete_task_in_hubspot( + context: ToolContext, + task_id: Annotated[ + str, + "The unique identifier of the task to be deleted from HubSpot CRM. Required to move the task to the recycling bin.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/tasks/{taskId}_archive'.", +]: + """Delete a task in HubSpot by task ID. + + Use this tool to move a specific task in HubSpot CRM to the recycling bin by providing the task ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tasks/{taskId}".format(taskId=task_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_hubspot_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + task_identifier: Annotated[ + str | None, + "The internal ID or unique property name of the task to update. Defaults to internal ID. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specify the name of the property with unique values. Used for identifying the object instead of `taskId`. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/tasks/{taskId}_update'." +]: + """Update properties of a HubSpot task using its ID. + + This tool allows partial updates to a task in HubSpot CRM by specifying a `{taskId}` or a unique property defined by `idProperty`. It overwrites specified properties, with read-only and non-existent properties triggering errors. To clear a property, pass an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTTASK"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not task_identifier: + missing_params.append(("task_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTTASK"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTTASK"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/{taskId}".format(taskId=task_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTTASK"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_batch_tasks( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/create_create'.", +]: + """Create a batch of tasks in HubSpot CRM. + + This tool is used to create multiple tasks at once in HubSpot CRM, streamlining task management processes. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHTASKS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHTASKS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHTASKS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHTASKS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def update_batch_tasks( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/update_update'.", +]: + """Update a batch of tasks in HubSpot CRM. + + Use this tool to update multiple tasks in HubSpot CRM by their internal ID or unique property values. It should be called when you need to modify several tasks at once, such as changing task details or status across multiple entries. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHTASKS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHTASKS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHTASKS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHTASKS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def retrieve_hubspot_tasks( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived records from HubSpot. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/read_read'." +]: + """Retrieve HubSpot task records by ID or custom property. + + Use this tool to fetch task records from HubSpot CRM by specifying record IDs or a custom unique value property via the `idProperty` parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTTASKS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTTASKS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTTASKS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTTASKS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def upsert_hubspot_tasks( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/upsert_upsert'.", +]: + """Create or update tasks in HubSpot using a unique property. + + This tool creates or updates HubSpot CRM tasks identified by a unique property value specified by the `idProperty` query parameter. Use this tool when you need to batch upsert tasks based on unique identifiers. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTTASKS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTTASKS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTTASKS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTTASKS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def search_hubspot_tasks( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tasks/search_doSearch'." +]: + """Search for tasks in HubSpot CRM. + + Use this tool to search for tasks within HubSpot CRM. It should be called when you need to find specific tasks based on certain search criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTTASKS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTTASKS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTTASKS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHHUBSPOTTASKS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.read"])) +async def get_tasks_list( + context: ToolContext, + max_results_per_page: Annotated[ + int | None, "Specify the maximum number of task results to retrieve per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token indicating the last resource read, used for pagination to continue from the next page.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Specify properties to return along with their full change history. Note: This reduces the number of tasks per request.", # noqa: E501 + ] = None, + retrieve_associated_object_ids: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. If specified associations do not exist, they will be ignored.", # noqa: E501 + ] = None, + return_only_archived_results: Annotated[ + bool | None, "Set to true to return only archived tasks; false for active tasks." + ] = False, + task_properties_to_return: Annotated[ + list[str] | None, + "A list of property names to include in the response. Ignored if not present on the tasks.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/tasks_getPage'." +]: + """Retrieve a page of tasks from HubSpot CRM. + + Use this tool to read a page of tasks from HubSpot CRM. Specify which properties to return using the 'properties' query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tasks", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": task_properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_ids, + "archived": return_only_archived_results, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.contacts.write"])) +async def create_task_in_crm( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tasks_create'." +]: + """Create a task in HubSpot CRM and return task details. + + This tool creates a task in HubSpot CRM with specified properties and returns the task details, including the ID. It should be called when you need to add a new task to the CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATETASKINCRM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATETASKINCRM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATETASKINCRM"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tasks", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATETASKINCRM"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def get_taxes_page( + context: ToolContext, + archived_only: Annotated[ + bool | None, "Set to true to return only archived tax results." + ] = False, + included_properties: Annotated[ + list[str] | None, + "List the properties to be returned for each tax. Specify as an array of strings.", + ] = None, + max_results_per_page: Annotated[ + int | None, "Specify the maximum number of tax results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The token for the paging cursor from the last read resource for fetching the next page of results.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "Specify properties to return with their history. Reduces max number of taxes per request.", + ] = None, + retrieve_associated_object_ids: Annotated[ + list[str] | None, + "Comma-separated list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/taxes_getPage'." +]: + """Retrieve a page of tax details from HubSpot CRM. + + Use this tool to read a specific page of tax details from the HubSpot CRM. You can control which properties are returned by specifying them in the query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/taxes", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": included_properties, + "propertiesWithHistory": properties_with_history, + "associations": retrieve_associated_object_ids, + "archived": archived_only, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_hubspot_tax( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/taxes_create'." +]: + """Create a tax in HubSpot CRM and retrieve its details. + + This tool creates a tax with specified properties in HubSpot CRM and returns a detailed object including the newly assigned ID. Use this for adding new tax records to your CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEHUBSPOTTAX"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTTAX"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEHUBSPOTTAX"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEHUBSPOTTAX"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def get_tax_details_by_id( + context: ToolContext, + tax_id: Annotated[ + str, + "The unique ID or property value for the tax object. Default is the internal object ID.", + ], + associated_object_types: Annotated[ + list[str] | None, + "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List properties to return with their historical values. Use a comma-separated format.", + ] = None, + return_archived_only: Annotated[ + bool | None, + "Set to true to return only archived results. False returns non-archived records.", + ] = False, + return_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to be included in the response. Non-existing properties will be ignored.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property whose values are unique for the tax object. Use this to specify an alternative ID property instead of the default internal ID.", # noqa: E501 + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/taxes/{taxId}_getById'." +]: + """Retrieve tax details using a specific tax ID. + + This tool retrieves tax object details from HubSpot CRM by specifying a tax ID. The ID can be the internal object ID or any unique property value as set by the `idProperty` query parameter. Useful for accessing specific tax information within HubSpot.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/taxes/{taxId}".format(taxId=tax_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": return_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_archived_only, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def delete_tax_entry( + context: ToolContext, + tax_entry_id: Annotated[ + str, "The unique identifier for the tax entry you want to archive in HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/taxes/{taxId}_archive'." +]: + """Archive a tax entry in HubSpot CRM. + + Use this tool to move a tax object identified by `taxId` to the recycling bin in HubSpot CRM.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/taxes/{taxId}".format(taxId=tax_entry_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_tax_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + tax_object_identifier: Annotated[ + str | None, + "The identifier for the tax object. Use the internal `taxId` by default or provide a unique property value specified by the `idProperty`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property uniquely identifying this tax object. Used instead of `taxId` if specified. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/taxes/{taxId}_update'." +]: + """Update properties of a tax object in HubSpot CRM. + + This tool updates specified properties of a tax object in HubSpot CRM using its ID or a unique property value. It's used to perform partial updates where only certain fields need modification. Fields to be updated are specified in the request, and read-only or non-existent fields will cause errors. To clear a property, pass an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATETAXOBJECT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not tax_object_identifier: + missing_params.append(("tax_object_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATETAXOBJECT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATETAXOBJECT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/{taxId}".format( # noqa: UP032 + taxId=tax_object_identifier + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATETAXOBJECT"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_or_update_tax_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/upsert_upsert'.", +]: + """Create or update tax records based on unique properties. + + This tool creates or updates tax records in HubSpot CRM by using unique property values specified by the `idProperty` parameter. It should be called when you need to ensure tax records are correctly up-to-date by leveraging existing unique identifiers. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEORUPDATETAXRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEORUPDATETAXRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEORUPDATETAXRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEORUPDATETAXRECORDS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def update_batch_taxes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/update_update'.", +]: + """Update taxes in batch using IDs or unique values. + + Call this tool to update multiple tax records at once in HubSpot CRM using either internal IDs or unique property values. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEBATCHTAXES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHTAXES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEBATCHTAXES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEBATCHTAXES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def retrieve_tax_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_only: Annotated[ + bool | None, + "Set to true to retrieve only archived records, false to exclude them. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/read_read'." +]: + """Retrieve tax records by ID or custom property. + + Use this tool to retrieve tax records by specifying record IDs or using a custom unique value property. It's useful when you need detailed tax information for specific records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVETAXRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVETAXRECORDS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVETAXRECORDS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVETAXRECORDS"], + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def create_tax_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/create_create'.", +]: + """Create a batch of taxes in HubSpot CRM. + + Use this tool to create multiple tax records at once in HubSpot CRM. Ideal for situations where bulk tax data entry is required. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATETAXBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATETAXBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATETAXBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATETAXBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.read"])) +async def search_taxes( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/taxes/search_doSearch'." +]: + """Search for tax entries within HubSpot CRM. + + Use this tool to find specific tax records in HubSpot CRM based on search criteria. It returns relevant tax entries from the CRM database. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHTAXES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHTAXES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHTAXES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHTAXES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.line_items.write"])) +async def archive_tax_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/archive_archive'.", +]: + """Archive a batch of taxes by their IDs. + + This tool archives a batch of taxes in the HubSpot CRM by their IDs. It should be called when you need to remove or deactivate multiple tax records at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVETAXBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVETAXBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVETAXBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/taxes/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVETAXBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def merge_support_tickets( + context: ToolContext, + primary_ticket_id: Annotated[ + str, + "The ID of the ticket designated as the primary record in the merge operation. After merging, this ticket will contain all combined information.", # noqa: E501 + ], + secondary_ticket_id: Annotated[ + str, + "The ID of the support ticket to be merged into the primary ticket. It specifies which ticket will be combined with the primary ticket record.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tickets/merge_merge'." +]: + """Merge two support tickets into one unified record. + + This tool merges two separate support tickets into a single ticket record, combining all the relevant information. It should be used when consolidating duplicate or related tickets is necessary to streamline customer support operations.""" # noqa: E501 + request_data: Any = { + "objectIdToMerge": secondary_ticket_id, + "primaryObjectId": primary_ticket_id, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tickets/merge", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def delete_hubspot_tickets_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/archive_archive'.", +]: + """Delete a batch of tickets in HubSpot CRM. + + Use this tool to delete multiple tickets by ID in HubSpot CRM. Deleted tickets can be restored within 90 days. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["DELETEHUBSPOTTICKETSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETEHUBSPOTTICKETSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETEHUBSPOTTICKETSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["DELETEHUBSPOTTICKETSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def get_ticket_details( + context: ToolContext, + ticket_id: Annotated[ + str, + "The ID of the ticket to retrieve from HubSpot CRM. This can be the internal object ID or a unique property value based on the `idProperty`.", # noqa: E501 + ], + associated_object_types: Annotated[ + list[str] | None, + "List of object types for retrieving associated IDs. Non-existent associations will be ignored.", # noqa: E501 + ] = None, + only_return_archived: Annotated[ + bool | None, "Set to true to return only archived results." + ] = False, + properties_to_return: Annotated[ + list[str] | None, + "A list of properties to include in the response. Properties not present will be ignored.", + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties with their history to be returned. If properties are missing, they'll be ignored.", # noqa: E501 + ] = None, + unique_identifier_property: Annotated[ + str | None, "Specifies the property name with unique values for identifying the ticket." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/objects/tickets/{ticketId}_getById'.", +]: + """Retrieve details of a ticket by ID from HubSpot CRM. + + This tool retrieves detailed information about a specific ticket in HubSpot CRM identified by `ticketId`. It's useful for obtaining comprehensive ticket data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tickets/{ticketId}".format(ticketId=ticket_id), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": only_return_archived, + "idProperty": unique_identifier_property, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def delete_ticket( + context: ToolContext, + ticket_id: Annotated[ + str, + "The unique ID of the ticket to move to the recycling bin. Must be a valid string representing the ticket identifier.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/objects/tickets/{ticketId}_archive'.", +]: + """Move a ticket to the recycling bin by ticket ID. + + Use this tool to delete a CRM ticket by moving it to the recycling bin using its unique ticket ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tickets/{ticketId}".format(ticketId=ticket_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def update_ticket_info( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + ticket_id: Annotated[ + str | None, + "The internal ID of the ticket to be updated. This is used to identify the specific ticket in HubSpot CRM. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "The name of a property whose values are unique for the ticket object. Specify if not using the default ticket ID. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/crm/v3/objects/tickets/{ticketId}_update'.", +]: + """Partially update ticket details in HubSpot CRM. + + Use this tool to perform a partial update on a ticket identified by its `{ticketId}` or a unique property value specified by `idProperty` in HubSpot CRM. Read-only and non-existent properties will cause errors. Clear property values by passing an empty string. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATETICKETINFO"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not ticket_id: + missing_params.append(("ticket_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATETICKETINFO"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATETICKETINFO"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/{ticketId}".format(ticketId=ticket_id), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATETICKETINFO"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def upsert_crm_tickets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/upsert_upsert'.", +]: + """Create or update CRM tickets in bulk using unique identifiers. + + This tool allows you to create or update ticket records in HubSpot CRM by using a unique identifier specified through the `idProperty` query parameter. This is useful for ensuring ticket data is up-to-date or for adding new ticket entries in bulk. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTCRMTICKETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCRMTICKETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTCRMTICKETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTCRMTICKETS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot")) +async def retrieve_ticket_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_archived_tickets_only: Annotated[ + bool | None, + "Set to true to return only archived tickets. If false, include non-archived tickets as well. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/read_read'." +]: + """Retrieve a batch of tickets by ID or property value. + + Use this tool to fetch a batch of CRM tickets by providing their IDs or a specific unique property value. Ideal for obtaining detailed information about multiple tickets simultaneously. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVETICKETBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVETICKETBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RETRIEVETICKETBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVETICKETBATCH"], + params=remove_none_values({"archived": return_archived_tickets_only}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def fetch_tickets_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types (e.g. 'contacts', 'companies') to retrieve associated IDs for tickets. Ignore if they don't exist.", # noqa: E501 + ] = None, + include_properties: Annotated[ + list[str] | None, + "A list of properties to return for each ticket. Specify as strings; unlisted properties will be ignored.", # noqa: E501 + ] = None, + paging_cursor_token: Annotated[ + str | None, "The token for the last read resource to continue paging results." + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "A list of property names to return with their historical values. Reduces the number of tickets retrievable per request.", # noqa: E501 + ] = None, + results_per_page: Annotated[ + int | None, "The maximum number of results to display per page. Must be a positive integer." + ] = 10, + return_only_archived: Annotated[ + bool | None, "Return only archived tickets if set to 'True'." + ] = False, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/tickets_getPage'." +]: + """Retrieve a page of tickets from HubSpot CRM. + + Use this tool to read a page of tickets from HubSpot CRM. You can control the returned data using the `properties` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/tickets", + method="GET", + params=remove_none_values({ + "limit": results_per_page, + "after": paging_cursor_token, + "properties": include_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def create_ticket( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tickets_create'." +]: + """Create a support ticket in HubSpot CRM. + + Use this tool to create a new support ticket with specified properties in HubSpot CRM and receive a copy of the ticket object along with its ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATETICKET"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATETICKET"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATETICKET"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATETICKET"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def search_tickets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/tickets/search_doSearch'." +]: + """Search and filter CRM tickets based on properties and associations. + + Utilize this tool to search for tickets within the CRM by applying specific filters on properties, examining associations, and sorting the results. Ideal for retrieving detailed ticket information based on particular criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHTICKETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHTICKETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHTICKETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHTICKETS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def create_batch_tickets( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/create_create'.", +]: + """Create a batch of tickets in HubSpot CRM. + + Use this tool to create multiple tickets in HubSpot CRM at once. You can specify property values for each ticket and define associations with other CRM records. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEBATCHTICKETS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHTICKETS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEBATCHTICKETS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEBATCHTICKETS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["tickets"])) +async def update_ticket_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/update_update'.", +]: + """Update multiple tickets in HubSpot CRM by ID or property. + + This tool updates a batch of tickets in the HubSpot CRM using their IDs or a unique property value. Use it when you need to modify several tickets at once. Properties that are read-only or non-existent will cause an error, and providing an empty string will clear a property value. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATETICKETBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATETICKETBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATETICKETBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/tickets/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATETICKETBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.companies.highly_sensitive.read.v2", + "crm.schemas.companies.read", + "tickets.sensitive.v2", + "crm.schemas.contacts.read", + "tickets.highly_sensitive.v2", + "crm.objects.contacts.read", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.schemas.deals.read", + "crm.objects.deals.read", + "tickets", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.contacts.sensitive.read.v2", + "crm.objects.companies.read", + "timeline", + ], + ) +) +async def retrieve_event_details( + context: ToolContext, + event_id: Annotated[ + str, + "Specify the event ID to retrieve detailed information for a specific event in HubSpot CRM.", # noqa: E501 + ], + event_template_id: Annotated[ + str, + "The ID of the event template used to identify and retrieve specific event details in HubSpot CRM.", # noqa: E501 + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail_getDetailById'.", # noqa: E501 +]: + """Retrieve detailed information for a specific HubSpot event. + + Use this tool to get detailed information about a specific event in HubSpot CRM, identified by its template ID and event ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail".format( # noqa: UP032 + eventTemplateId=event_template_id, eventId=event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.deals.write", + "crm.objects.contacts.write", + "crm.objects.companies.highly_sensitive.write.v2", + "tickets.sensitive.v2", + "tickets.highly_sensitive.v2", + "crm.schemas.companies.write", + "crm.objects.companies.write", + "tickets", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.schemas.contacts.write", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.contacts.highly_sensitive.write.v2", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def send_event_to_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/integrators/timeline/v3/events_create'." +]: + """Send event data to a specified HubSpot event type. + + This tool is used to send a single instance of event data to a specified event type in HubSpot CRM. It should be called when there's a need to submit event data to HubSpot for tracking or analysis. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SENDEVENTTOHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SENDEVENTTOHUBSPOT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SENDEVENTTOHUBSPOT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/integrators/timeline/v3/events", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SENDEVENTTOHUBSPOT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.objects.companies.highly_sensitive.read.v2", + "crm.schemas.companies.read", + "tickets.sensitive.v2", + "crm.schemas.contacts.read", + "tickets.highly_sensitive.v2", + "crm.objects.contacts.read", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.schemas.deals.read", + "crm.objects.deals.read", + "tickets", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.contacts.sensitive.read.v2", + "crm.objects.companies.read", + "timeline", + ], + ) +) +async def retrieve_event_instance( + context: ToolContext, + event_id: Annotated[str, "The unique identifier for the specific event you want to retrieve."], + event_template_id: Annotated[ + str, "The unique ID of the event template required to retrieve the event instance." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}_getById'.", # noqa: E501 +]: + """Retrieve an event instance using template and event ID. + + Use this tool to access detailed information about a specific event instance by providing the event template ID and event ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId}".format( # noqa: UP032 + eventTemplateId=event_template_id, eventId=event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2( + id="arcade-hubspot", + scopes=[ + "crm.schemas.deals.write", + "crm.objects.contacts.write", + "crm.objects.companies.highly_sensitive.write.v2", + "tickets.sensitive.v2", + "tickets.highly_sensitive.v2", + "crm.schemas.companies.write", + "crm.objects.companies.write", + "tickets", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.schemas.contacts.write", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.contacts.highly_sensitive.write.v2", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.deals.sensitive.write.v2", + ], + ) +) +async def batch_create_timeline_events( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/integrators/timeline/v3/events/batch/create_createBatch'.", # noqa: E501 +]: + """Batch create multiple timeline event instances. + + Batch create multiple timeline events using an event template. Created events are immutable and can trigger updates to object properties if configured in the template. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHCREATETIMELINEEVENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHCREATETIMELINEEVENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["BATCHCREATETIMELINEEVENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/integrators/timeline/v3/events/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHCREATETIMELINEEVENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.extensions_calling_transcripts.write"]) +) +async def upload_call_transcripts( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/extensions/calling/transcripts'." +]: + """Upload call transcripts to HubSpot CRM. + + Use this tool to upload call transcripts to HubSpot CRM. It should be called when you need to store transcripts for CRM purposes. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPLOADCALLTRANSCRIPTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPLOADCALLTRANSCRIPTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPLOADCALLTRANSCRIPTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/extensions/calling/transcripts", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPLOADCALLTRANSCRIPTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.extensions_calling_transcripts.read"])) +async def get_transcript_by_id( + context: ToolContext, + transcript_id: Annotated[ + str, "The unique identifier of the call transcript to retrieve from HubSpot CRM." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/crm/v3/extensions/calling/transcripts/{transcriptId}'.", +]: + """Retrieve call transcript details by transcript ID. + + This tool retrieves details of a call transcript for a given transcript ID in the HubSpot CRM. Use it to access specific call records and transcript data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/extensions/calling/transcripts/{transcriptId}".format( # noqa: UP032 + transcriptId=transcript_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool( + requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.extensions_calling_transcripts.write"]) +) +async def delete_call_transcript( + context: ToolContext, + transcript_id: Annotated[ + str, + "The unique identifier for the call transcript you want to delete from the HubSpot CRM.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/crm/v3/extensions/calling/transcripts/{transcriptId}'.", # noqa: E501 +]: + """Delete a call transcript by transcript ID. + + Removes a call transcript identified by transcript ID from the HubSpot CRM.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/extensions/calling/transcripts/{transcriptId}".format( # noqa: UP032 + transcriptId=transcript_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.read"])) +async def search_crm_users( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users/search'." +]: + """Perform a user search in the CRM database. + + Use this tool to search for users within the HubSpot CRM. It should be called when you need to retrieve user information based on specific criteria. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SEARCHCRMUSERS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCRMUSERS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SEARCHCRMUSERS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/search", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SEARCHCRMUSERS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def create_users_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users/batch/create'." +]: + """Create a batch of users in the CRM system. + + Use this tool to create multiple users at once in the HubSpot CRM. It should be called when there is a need to add multiple users efficiently through a single command. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEUSERSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEUSERSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEUSERSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEUSERSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def archive_users_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users/batch/archive'." +]: + """Archives a batch of users by their IDs in HubSpot CRM. + + Use this tool to archive multiple users at once by providing their IDs to the HubSpot CRM system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVEUSERSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEUSERSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVEUSERSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVEUSERSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.read"])) +async def retrieve_hubspot_user_records( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + return_only_archived_results: Annotated[ + bool | None, + "Specify True to return only results that have been archived. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users/batch/read'." +]: + """Retrieve HubSpot user records by ID or unique property. + + Use this tool to fetch HubSpot CRM user records by providing a record ID or specifying a custom unique value property with the `idProperty` parameter. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTUSERRECORDS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTUSERRECORDS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTUSERRECORDS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RETRIEVEHUBSPOTUSERRECORDS"], + params=remove_none_values({"archived": return_only_archived_results}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def upsert_hubspot_users( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users/batch/upsert'." +]: + """Create or update user records in HubSpot CRM. + + This tool is used to create or update user records in HubSpot CRM by specifying a unique property value through the `idProperty` query parameter. It is helpful for maintaining and synchronizing user data in HubSpot. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTUSERS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTUSERS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTUSERS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/batch/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTHUBSPOTUSERS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.read"])) +async def get_user_info( + context: ToolContext, + user_identifier: Annotated[ + str, + "The unique identifier for the user. This can be the internal object ID or a property value specified by `idProperty`.", # noqa: E501 + ], + object_associations: Annotated[ + list[str] | None, + "Comma separated list of object types to retrieve associated IDs for in the user info response.", # noqa: E501 + ] = None, + properties_to_return: Annotated[ + list[str] | None, + "A list of user properties to return in the response. If any specified properties are not present, they will be ignored.", # noqa: E501 + ] = None, + properties_with_history: Annotated[ + list[str] | None, "List of property names to return with their value history for the user." + ] = None, + return_only_archived_results: Annotated[ + bool | None, + "Set to true to return only archived results. Set to false to exclude archived items from results.", # noqa: E501 + ] = False, + unique_property_name: Annotated[ + str | None, "The name of a property with unique values to identify the object." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/users/{userId}'." +]: + """Retrieves user information from HubSpot CRM using user ID. + + Use this tool to fetch detailed information about a user in HubSpot CRM by specifying the user's unique ID. You can control the returned data by using specific query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/users/{userId}".format(userId=user_identifier), # noqa: UP032 + method="GET", + params=remove_none_values({ + "properties": properties_to_return, + "propertiesWithHistory": properties_with_history, + "associations": object_associations, + "archived": return_only_archived_results, + "idProperty": unique_property_name, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def delete_user( + context: ToolContext, + user_id_to_delete: Annotated[ + str, "The unique identifier of the user to delete and move to the recycling bin." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/crm/v3/objects/users/{userId}'." +]: + """Delete a user and move to recycling bin.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/users/{userId}".format(userId=user_id_to_delete), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def update_hubspot_user( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + user_id: Annotated[ + str | None, + "The internal user ID or unique property value to identify the user for updating. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + unique_property_name: Annotated[ + str | None, + "Specifies the name of a property with unique values for identifying the user object. Use this if not using userId. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/crm/v3/objects/users/{userId}'." +]: + """Update user details in HubSpot CRM. + + This tool updates specific user information in HubSpot CRM for a given user ID or a unique property value if specified. Use this tool when you need to modify or clear user property values, bearing in mind read-only and non-existent properties will cause errors. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTUSER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not user_id: + missing_params.append(("user_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTUSER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTUSER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/{userId}".format(userId=user_id), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTUSER"], + params=remove_none_values({"idProperty": unique_property_name}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def update_multiple_users( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users/batch/update'." +]: + """Update multiple users in HubSpot CRM by internal ID or unique properties. + + This tool updates a batch of users in HubSpot CRM using either their internal IDs or unique property values. Use this tool to efficiently update information for multiple users at once. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEUSERS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEUSERS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEUSERS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMULTIPLEUSERS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.read"])) +async def get_users_page( + context: ToolContext, + associated_object_types: Annotated[ + list[str] | None, + "A list of object types for which associated IDs should be retrieved. If specified associations do not exist, they will be ignored.", # noqa: E501 + ] = None, + max_results_per_page: Annotated[ + int | None, "Specify the maximum number of results to display per page." + ] = 10, + paging_cursor_token: Annotated[ + str | None, + "The paging cursor token from the last read resource, used to fetch next set of results.", + ] = None, + properties_with_history: Annotated[ + list[str] | None, + "List of properties to return with their history. Reduces the maximum number of users per request.", # noqa: E501 + ] = None, + return_only_archived: Annotated[ + bool | None, "Set to true to return only results that have been archived." + ] = False, + user_properties: Annotated[ + list[str] | None, + "A list of user property names to include in the response. Any non-existent properties will be ignored.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/crm/v3/objects/users'."]: + """Fetch a page of users from the CRM. + + Use this tool to read a page of users from the HubSpot CRM. You can control which user properties are returned by using the appropriate query parameters.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/crm/v3/objects/users", + method="GET", + params=remove_none_values({ + "limit": max_results_per_page, + "after": paging_cursor_token, + "properties": user_properties, + "propertiesWithHistory": properties_with_history, + "associations": associated_object_types, + "archived": return_only_archived, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.users.write"])) +async def create_crm_user( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/crm/v3/objects/users'."]: + """Create a new user in the CRM and retrieve their ID. + + Use this tool to create a new user in the HubSpot CRM system. The tool will return a detailed user object, including the newly assigned ID. This is useful for adding new users to your CRM database. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATECRMUSER"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMUSER"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATECRMUSER"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/crm/v3/objects/users", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATECRMUSER"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/request_body_schemas.py b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/request_body_schemas.py new file mode 100644 index 00000000..0321561d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/tools/request_body_schemas.py @@ -0,0 +1,284 @@ +"""Request Body Schemas for API Tools + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED AND CONTAINS OpenAPI REQUEST BODY SCHEMAS +FOR TOOLS WITH COMPLEX REQUEST BODIES. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +from typing import Any + +REQUEST_BODY_SCHEMAS: dict[str, Any] = { + "RETRIEVEHUBSPOTCRMRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEMULTIPLEHUBSPOTAPPOINTMENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATECRMAPPOINTMENT": '{"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATEBATCHAPPOINTMENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPSERTHUBSPOTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "SEARCHAPPOINTMENTS": '{"required": ["after", "filterGroups", "limit", "properties", "sorts"], "type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "ARCHIVEMULTIPLEAPPOINTMENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEHUBSPOTOBJECT": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEBATCHASSOCIATIONSHUBSPOT": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["from", "to", "type"], "type": "object", "properties": {"from": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}, "type": {"type": "string"}}, "example": {"from": {"id": "53628"}, "to": {"id": "12726"}, "type": "contact_to_company"}}}}}', # noqa: E501 + "BATCHREADASSOCIATIONS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "HUBSPOTBATCHARCHIVEASSOCIATIONS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["from", "to", "type"], "type": "object", "properties": {"from": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}, "type": {"type": "string"}}, "example": {"from": {"id": "53628"}, "to": {"id": "12726"}, "type": "contact_to_company"}}}}}', # noqa: E501 + "CREATEBATCHOFCALLS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPSERTCALLRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "RETRIEVECALLSBATCH": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEBATCHCALLS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEHUBSPOTCALL": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPDATECALLINFO": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "ARCHIVECALLSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "SEARCHCALLSHUBSPOT": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "ARCHIVECARTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEBATCHOFCARTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "CREATECARTHUBSPOTCRM": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "RETRIEVECARTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPSERTCARTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATECARTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "SEARCHHUBSPOTCARTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATECARTPROPERTIES": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPSERTCOMMERCEPAYMENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEBATCHCOMMERCEPAYMENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATECOMMERCEPAYMENT": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "ARCHIVECOMMERCEPAYMENTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATECOMMERCEPAYMENTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "RETRIEVECOMMERCEPAYMENTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "SEARCHCOMMERCEPAYMENTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATECOMMERCEPAYMENT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPDATESUBSCRIPTIONBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "ARCHIVESUBSCRIPTIONSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "SEARCHHUBSPOTSUBSCRIPTIONS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATESUBSCRIPTION": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPSERTSUBSCRIPTIONSINHUBSPOTCRM": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "RETRIEVESUBSCRIPTIONRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEBATCHSUBSCRIPTIONS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATESUBSCRIPTION": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEMESSAGESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "DELETEBATCHMESSAGES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPSERTCOMMUNICATIONSRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEHUBSPOTCOMMUNICATION": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPDATECOMMUNICATIONDETAILS": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "SEARCHCRMMESSAGES": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEBATCHCOMMUNICATIONS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEHUBSPOTMESSAGESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "RETRIEVEBATCHCOMPANIESHUBSPOT": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATECOMPANYHUBSPOT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "The company property values to set."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "SEARCHCOMPANIESINHUBSPOT": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATEHUBSPOTCOMPANY": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "The company property values to set."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEORUPDATECOMPANIES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATEBATCHOFCOMPANIES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEBATCHOFCOMPANIES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "DELETECOMPANIESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "BATCHREADCONTACTS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "items": {"type": "string"}}, "idProperty": {"type": "string"}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "items": {"type": "string"}}}}', # noqa: E501 + "UPDATECONTACTINFORMATION": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "example": {"property_date": "1572480000000", "property_radio": "option_1", "property_number": "17", "property_string": "value", "property_checkbox": "false", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry"}}}, "example": {"properties": {"email": "bcooper@biglytics.net", "phone": "(877) 929-0687", "company": "Biglytics", "website": "biglytics.net", "lastname": "Cooper", "firstname": "Bryan"}, "associations": []}}', # noqa: E501 + "ARCHIVECONTACTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEBATCHCONTACTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}}}}', # noqa: E501 + "UPDATEBATCHCONTACTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEHUBSPOTCONTACT": '{"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}, "example": {"properties": {"email": "bcooper@biglytics.net", "phone": "(877) 929-0687", "company": "Biglytics", "website": "biglytics.net", "lastname": "Cooper", "firstname": "Bryan"}, "associations": []}}', # noqa: E501 + "SEARCHCONTACTS": '{"required": ["after", "filterGroups", "limit", "properties", "sorts"], "type": "object", "properties": {"query": {"type": "string"}, "limit": {"type": "integer", "format": "int32"}, "after": {"type": "string"}, "sorts": {"type": "array", "items": {"type": "string"}}, "properties": {"type": "array", "items": {"type": "string"}}, "filterGroups": {"type": "array", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}}', # noqa: E501 + "UPSERTCONTACTBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEHUBSPOTCOURSE": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "ARCHIVECOURSESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEHUBSPOTCOURSE": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEBATCHOFCOURSES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "BATCHUPSERTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "HUBSPOTCRMSEARCHOBJECTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATECOURSESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "RETRIEVEHUBSPOTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "BATCHRETRIEVEHUBSPOTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "MODIFYHUBSPOTOBJECT": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "ARCHIVEHUBSPOTOBJECTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEHUBSPOTOBJECTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEHUBSPOTOBJECTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATEORCREATEHUBSPOTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATECRMOBJECT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "SEARCHHUBSPOTOBJECTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATEMULTIPLEDEALS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "SEARCHDEALS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATEORUPDATEHUBSPOTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "ARCHIVEMULTIPLEDEALS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "RETRIEVECRMRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEHUBSPOTDEAL": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEMULTIPLEDEALS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "CREATEHUBSPOTDEAL": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "MANAGEDEALSPLITS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "splits"], "type": "object", "properties": {"splits": {"type": "array", "items": {"required": ["ownerId", "percentage"], "type": "object", "properties": {"percentage": {"type": "number"}, "ownerId": {"type": "integer", "format": "int32"}}}}, "id": {"type": "integer", "format": "int32"}}}}}}', # noqa: E501 + "READBATCHDEALSPLITS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "SEARCHDISCOUNTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATEDISCOUNTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "UPDATEDISCOUNTDETAILS": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEBATCHDISCOUNTSHUBSPOT": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPSERTDISCOUNTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "ARCHIVEDISCOUNTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEDISCOUNT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "RETRIEVEDISCOUNTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEBATCHOFEMAILS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "CREATEHUBSPOTEMAIL": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "RETRIEVEEMAILRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEORUPDATEHUBSPOTEMAILS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATEEMAILINHUBSPOTCRM": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "ARCHIVEEMAILSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEBATCHEMAILS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "SEARCHEMAILS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "SEARCHFEEDBACKSUBMISSIONS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEFEEDBACKRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEFEEDETAILS": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPSERTHUBSPOTFEES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEFEEINCRM": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATEBATCHFEES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "SEARCHFEESINCRM": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATEBATCHFEES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "ARCHIVEFEESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "RETRIEVEFEERECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEGOALTARGETSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "RETRIEVEGOALTARGETS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEGOALTARGET": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "SEARCHGOALTARGETS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "ARCHIVEGOALTARGETSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEBATCHGOALTARGETS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "UPSERTGOALTARGETS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEGOALTARGET": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATEBATCHOFINVOICES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "SEARCHINVOICES": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEINVOICERECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEINVOICEDETAILS": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEINVOICESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEHUBSPOTINVOICE": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPSERTHUBSPOTINVOICES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "ARCHIVEINVOICESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "RETRIEVELEADRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "SEARCHCRMLEADS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATELEADHUBSPOT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATELEADSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATELEADSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "UPDATELEADDETAILS": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "ARCHIVELEADSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEHUBSPOTLINEITEM": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPDATELINEITEM": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPSERTLINEITEMSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATELINEITEMSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATELINEITEMSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "SEARCHLINEITEMS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEBATCHLINEITEMS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "ARCHIVELINEITEMSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEHUBSPOTLISTING": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "ARCHIVEMULTIPLELISTINGS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEMULTIPLECRMLISTINGS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "FETCHHUBSPOTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEMULTIPLELISTINGS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "CREATEORUPDATEBATCHRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "SEARCHHUBSPOTLISTINGS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "HUBSPOTUPDATELISTING": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "SCHEDULELISTCONVERSION": '{"properties": {}, "oneOf": [{"title": "CONVERSION_DATE", "required": ["conversionType", "day", "month", "year"], "type": "object", "properties": {"month": {"type": "integer", "format": "int32"}, "year": {"type": "integer", "format": "int32"}, "conversionType": {"type": "string", "default": "CONVERSION_DATE", "enum": ["CONVERSION_DATE"]}, "day": {"type": "integer", "format": "int32"}}}, {"title": "INACTIVITY", "required": ["conversionType", "offset", "timeUnit"], "type": "object", "properties": {"offset": {"type": "integer", "format": "int32"}, "conversionType": {"type": "string", "default": "INACTIVITY", "enum": ["INACTIVITY"]}, "timeUnit": {"type": "string", "enum": ["DAY", "WEEK", "MONTH"]}}}]}', # noqa: E501 + "UPDATEHUBSPOTMEETING": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEMEETINGSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "RETRIEVEMEETINGRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "ARCHIVEMEETINGSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEHUBSPOTMEETING": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPSERTMEETINGS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEBATCHMEETINGS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "SEARCHHUBSPOTMEETINGS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "SEARCHHUBSPOTNOTES": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATENOTEINHUBSPOT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "RETRIEVENOTESRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPSERTNOTESHUBSPOT": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "ARCHIVENOTESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "BATCHUPDATENOTES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEBATCHOFNOTES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATEHUBSPOTNOTE": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "SEARCHORDERRECORDS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEHUBSPOTORDERS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATEORDERDETAILS": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPSERTORDERSINHUBSPOT": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEBATCHORDERS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATEHUBSPOTORDERSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEHUBSPOTORDER": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "ARCHIVEORDERSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEPARTNERCLIENTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "BATCHREADPARTNERCLIENTS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "SEARCHPARTNERCLIENTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATEPARTNERCLIENT": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEPARTNERSERVICE": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "RETRIEVEPARTNERSERVICESRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "SEARCHPARTNERSERVICESHUBSPOT": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "UPDATEPARTNERSERVICESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "READBATCHPAYMENTS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "items": {"type": "string"}}, "idProperty": {"type": "string"}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "items": {"type": "string"}}}}', # noqa: E501 + "SEARCHHUBSPOTPAYMENTS": '{"required": ["after", "filterGroups", "limit", "properties", "sorts"], "type": "object", "properties": {"query": {"type": "string"}, "limit": {"type": "integer", "format": "int32"}, "after": {"type": "string"}, "sorts": {"type": "array", "items": {"type": "string"}}, "properties": {"type": "array", "items": {"type": "string"}}, "filterGroups": {"type": "array", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}}', # noqa: E501 + "REPLACEPIPELINEHUBSPOT": '{"required": ["displayOrder", "label", "stages"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "stages": {"type": "array", "description": "Pipeline stage inputs used to create the new or replacement pipeline.", "items": {"required": ["displayOrder", "label"], "type": "object", "properties": {"metadata": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ "probability": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ "ticketState": "OPEN" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`."}, "displayOrder": {"type": "integer", "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "label": {"type": "string", "description": "A label used to organize pipeline stages in HubSpot\'s UI. Each pipeline stage\'s label must be unique within that pipeline."}}, "description": "An input used to create or replace a pipeline stage\'s definition.", "example": {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}}}, "label": {"type": "string", "description": "A unique label used to organize pipelines in HubSpot\'s UI"}}, "description": "An input used to create or replace a pipeline\'s definition.", "example": {"label": "My replaced pipeline", "displayOrder": 0, "stages": [{"label": "In Progress", "displayOrder": 0, "metadata": {"ticketState": "OPEN"}}, {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}]}}', # noqa: E501 + "CREATEPIPELINESTAGE": '{"required": ["displayOrder", "label"], "type": "object", "properties": {"metadata": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ "probability": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ "ticketState": "OPEN" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`."}, "displayOrder": {"type": "integer", "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "label": {"type": "string", "description": "A label used to organize pipeline stages in HubSpot\'s UI. Each pipeline stage\'s label must be unique within that pipeline."}}, "description": "An input used to create or replace a pipeline stage\'s definition.", "example": {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}}', # noqa: E501 + "CREATECRMPIPELINE": '{"required": ["displayOrder", "label", "stages"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "stages": {"type": "array", "description": "Pipeline stage inputs used to create the new or replacement pipeline.", "items": {"required": ["displayOrder", "label"], "type": "object", "properties": {"metadata": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ "probability": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ "ticketState": "OPEN" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`."}, "displayOrder": {"type": "integer", "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "label": {"type": "string", "description": "A label used to organize pipeline stages in HubSpot\'s UI. Each pipeline stage\'s label must be unique within that pipeline."}}, "description": "An input used to create or replace a pipeline stage\'s definition.", "example": {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}}}, "label": {"type": "string", "description": "A unique label used to organize pipelines in HubSpot\'s UI"}}, "description": "An input used to create or replace a pipeline\'s definition.", "example": {"label": "My replaced pipeline", "displayOrder": 0, "stages": [{"label": "In Progress", "displayOrder": 0, "metadata": {"ticketState": "OPEN"}}, {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}]}}', # noqa: E501 + "REPLACEPIPELINESTAGEPROPERTIES": '{"required": ["displayOrder", "label"], "type": "object", "properties": {"metadata": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ "probability": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ "ticketState": "OPEN" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`."}, "displayOrder": {"type": "integer", "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "label": {"type": "string", "description": "A label used to organize pipeline stages in HubSpot\'s UI. Each pipeline stage\'s label must be unique within that pipeline."}}, "description": "An input used to create or replace a pipeline stage\'s definition.", "example": {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}}', # noqa: E501 + "UPDATEPIPELINESTAGE": '{"type": "object", "properties": {"archived": {"type": "boolean", "description": "Whether the pipeline is archived."}, "metadata": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ "probability": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ "ticketState": "OPEN" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`."}, "displayOrder": {"type": "integer", "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.", "format": "int32"}, "label": {"type": "string", "description": "A label used to organize pipeline stages in HubSpot\'s UI. Each pipeline stage\'s label must be unique within that pipeline."}}, "description": "An input used to update some properties on a pipeline definition.", "example": {"label": "Done", "displayOrder": 1, "metadata": {"ticketState": "CLOSED"}}}', # noqa: E501 + "GETMULTIPLEPOSTALMAILOBJECTS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "ARCHIVEPOSTALMAILBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEPOSTALMAILOBJECT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATEPOSTALMAILBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPSERTPOSTALMAILINHUBSPOT": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATEPOSTALMAILRECORD": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEMULTIPLEPOSTALMAILS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "SEARCHPOSTALMAILHUBSPOT": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "ARCHIVEPRODUCTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEPRODUCTINHUBSPOT": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "SEARCHHUBSPOTPRODUCTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEHUBSPOTPRODUCTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATEBATCHOFPRODUCTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPSERTHUBSPOTPRODUCTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATEPRODUCTINFO": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEHUBSPOTPRODUCTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "ARCHIVECRMPROPERTIES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["name"], "type": "object", "properties": {"name": {"type": "string", "description": "The name of the property to read or modify."}}, "example": {"name": "my_custom_property"}}}}}', # noqa: E501 + "UPDATEPROPERTYVALUE": '{"type": "object", "properties": {"groupName": {"type": "string", "description": "The name of the property group the property belongs to."}, "hidden": {"type": "boolean", "description": "If true, the property won\'t be visible and can\'t be used in HubSpot."}, "options": {"type": "array", "description": "A list of valid options for the property.", "items": {"required": ["hidden", "label", "value"], "type": "object", "properties": {"hidden": {"type": "boolean", "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties."}, "displayOrder": {"type": "integer", "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the option."}, "label": {"type": "string", "description": "A human-readable option label that will be shown in HubSpot."}, "value": {"type": "string", "description": "The internal value of the option, which must be used when setting the property value through the API."}}, "example": {"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}}}, "displayOrder": {"type": "integer", "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the property that will be shown as help text in HubSpot."}, "calculationFormula": {"type": "string", "description": "Represents a formula that is used to compute a calculated property."}, "label": {"type": "string", "description": "A human-readable property label that will be shown in HubSpot."}, "type": {"type": "string", "description": "The data type of the property.", "enum": ["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"]}, "fieldType": {"type": "string", "description": "Controls how the property appears in HubSpot.", "enum": ["booleancheckbox", "calculation_equation", "checkbox", "date", "file", "html", "number", "phonenumber", "radio", "select", "text", "textarea"]}, "formField": {"type": "boolean", "description": "Whether or not the property can be used in a HubSpot form."}}, "example": {"displayOrder": 2, "fieldType": "select", "formField": true, "groupName": "contactinformation", "hidden": false, "label": "My Contact Property", "name": "my_contact_property", "options": [{"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}, {"description": "Choice number two", "displayOrder": 2, "hidden": false, "label": "Option B", "value": "B"}], "type": "enumeration"}}', # noqa: E501 + "READBATCHPROPERTIES": '{"required": ["archived", "inputs"], "type": "object", "properties": {"archived": {"type": "boolean"}, "inputs": {"type": "array", "items": {"required": ["name"], "type": "object", "properties": {"name": {"type": "string", "description": "The name of the property to read or modify."}}, "example": {"name": "my_custom_property"}}}, "dataSensitivity": {"type": "string", "enum": ["non_sensitive", "sensitive", "highly_sensitive"]}}}', # noqa: E501 + "CREATEBATCHPROPERTIES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["fieldType", "groupName", "label", "name", "type"], "type": "object", "properties": {"hidden": {"type": "boolean", "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties."}, "displayOrder": {"type": "integer", "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the property that will be shown as help text in HubSpot."}, "label": {"type": "string", "description": "A human-readable property label that will be shown in HubSpot."}, "type": {"type": "string", "description": "The data type of the property.", "enum": ["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"]}, "formField": {"type": "boolean", "description": "Whether or not the property can be used in a HubSpot form."}, "dataSensitivity": {"type": "string", "enum": ["non_sensitive", "sensitive", "highly_sensitive"]}, "groupName": {"type": "string", "description": "The name of the property group the property belongs to."}, "referencedObjectType": {"type": "string", "description": "Should be set to \'OWNER\' when \'externalOptions\' is true, which causes the property to dynamically pull option values from the current HubSpot users."}, "name": {"type": "string", "description": "The internal property name, which must be used when referencing the property via the API."}, "options": {"type": "array", "description": "A list of valid options for the property. This field is required for enumerated properties.", "items": {"required": ["hidden", "label", "value"], "type": "object", "properties": {"hidden": {"type": "boolean", "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties."}, "displayOrder": {"type": "integer", "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the option."}, "label": {"type": "string", "description": "A human-readable option label that will be shown in HubSpot."}, "value": {"type": "string", "description": "The internal value of the option, which must be used when setting the property value through the API."}}, "example": {"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}}}, "calculationFormula": {"type": "string", "description": "Represents a formula that is used to compute a calculated property."}, "hasUniqueValue": {"type": "boolean", "description": "Whether or not the property\'s value must be unique. Once set, this can\'t be changed."}, "fieldType": {"type": "string", "description": "Controls how the property appears in HubSpot.", "enum": ["booleancheckbox", "calculation_equation", "checkbox", "date", "file", "html", "number", "phonenumber", "radio", "select", "text", "textarea"]}, "externalOptions": {"type": "boolean", "description": "Applicable only for \'enumeration\' type properties. Should be set to true in conjunction with a \'referencedObjectType\' of \'OWNER\'. Otherwise false."}}, "example": {"displayOrder": 2, "fieldType": "select", "formField": true, "groupName": "contactinformation", "hasUniqueValue": false, "hidden": false, "label": "My Contact Property", "name": "my_contact_property", "options": [{"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}, {"description": "Choice number two", "displayOrder": 2, "hidden": false, "label": "Option B", "value": "B"}], "type": "enumeration"}}}}}', # noqa: E501 + "CREATEHUBSPOTCRMPROPERTY": '{"required": ["fieldType", "groupName", "label", "name", "type"], "type": "object", "properties": {"hidden": {"type": "boolean", "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties."}, "displayOrder": {"type": "integer", "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the property that will be shown as help text in HubSpot."}, "label": {"type": "string", "description": "A human-readable property label that will be shown in HubSpot."}, "type": {"type": "string", "description": "The data type of the property.", "enum": ["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"]}, "formField": {"type": "boolean", "description": "Whether or not the property can be used in a HubSpot form."}, "dataSensitivity": {"type": "string", "enum": ["non_sensitive", "sensitive", "highly_sensitive"]}, "groupName": {"type": "string", "description": "The name of the property group the property belongs to."}, "referencedObjectType": {"type": "string", "description": "Should be set to \'OWNER\' when \'externalOptions\' is true, which causes the property to dynamically pull option values from the current HubSpot users."}, "name": {"type": "string", "description": "The internal property name, which must be used when referencing the property via the API."}, "options": {"type": "array", "description": "A list of valid options for the property. This field is required for enumerated properties.", "items": {"required": ["hidden", "label", "value"], "type": "object", "properties": {"hidden": {"type": "boolean", "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties."}, "displayOrder": {"type": "integer", "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the option."}, "label": {"type": "string", "description": "A human-readable option label that will be shown in HubSpot."}, "value": {"type": "string", "description": "The internal value of the option, which must be used when setting the property value through the API."}}, "example": {"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}}}, "calculationFormula": {"type": "string", "description": "Represents a formula that is used to compute a calculated property."}, "hasUniqueValue": {"type": "boolean", "description": "Whether or not the property\'s value must be unique. Once set, this can\'t be changed."}, "fieldType": {"type": "string", "description": "Controls how the property appears in HubSpot.", "enum": ["booleancheckbox", "calculation_equation", "checkbox", "date", "file", "html", "number", "phonenumber", "radio", "select", "text", "textarea"]}, "externalOptions": {"type": "boolean", "description": "Applicable only for \'enumeration\' type properties. Should be set to true in conjunction with a \'referencedObjectType\' of \'OWNER\'. Otherwise false."}}, "example": {"displayOrder": 2, "fieldType": "select", "formField": true, "groupName": "contactinformation", "hasUniqueValue": false, "hidden": false, "label": "My Contact Property", "name": "my_contact_property", "options": [{"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}, {"description": "Choice number two", "displayOrder": 2, "hidden": false, "label": "Option B", "value": "B"}], "type": "enumeration"}}', # noqa: E501 + "ARCHIVEQUOTESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "CREATEHUBSPOTQUOTE": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPDATEQUOTEINFORMATION": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEQUOTEBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATEORUPDATEQUOTES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "CREATEBATCHOFQUOTES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "SEARCHQUOTESINHUBSPOT": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "RETRIEVEQUOTESBATCH": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATECRMOBJECTSCHEMA": '{"required": ["associatedObjects", "labels", "name", "properties", "requiredProperties"], "type": "object", "properties": {"secondaryDisplayProperties": {"type": "array", "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", "items": {"type": "string"}}, "requiredProperties": {"type": "array", "description": "The names of properties that should be **required** when creating an object of this type.", "items": {"type": "string"}}, "searchableProperties": {"type": "array", "description": "Names of properties that will be indexed for this object type in by HubSpot\'s product search.", "items": {"type": "string"}}, "primaryDisplayProperty": {"type": "string", "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type."}, "name": {"type": "string", "description": "A unique name for this object. For internal use only."}, "description": {"type": "string"}, "associatedObjects": {"type": "array", "description": "Associations defined for this object type.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "Properties defined for this object type.", "items": {"required": ["fieldType", "label", "name", "type"], "type": "object", "properties": {"hidden": {"type": "boolean"}, "optionSortStrategy": {"type": "string", "description": "Controls how the property options will be sorted in the HubSpot UI.", "enum": ["DISPLAY_ORDER", "ALPHABETICAL"]}, "displayOrder": {"type": "integer", "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the property that will be shown as help text in HubSpot."}, "showCurrencySymbol": {"type": "boolean", "description": "Whether the property will display the currency symbol in the HubSpot UI."}, "label": {"type": "string", "description": "A human-readable property label that will be shown in HubSpot."}, "type": {"type": "string", "description": "The data type of the property.", "enum": ["string", "number", "date", "datetime", "enumeration", "bool"]}, "formField": {"type": "boolean", "description": "Whether the property can be used in a HubSpot form."}, "groupName": {"type": "string", "description": "The name of the group this property belongs to."}, "referencedObjectType": {"type": "string", "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal."}, "textDisplayHint": {"type": "string", "description": "Controls how text properties are formatted in the HubSpot UI", "enum": ["unformatted_single_line", "multi_line", "email", "phone_number", "domain_name", "ip_address", "physical_address", "postal_code"]}, "name": {"type": "string", "description": "The internal property name, which must be used when referencing the property from the API."}, "options": {"type": "array", "description": "A list of available options for the property. This field is only required for enumerated properties.", "items": {"required": ["hidden", "label", "value"], "type": "object", "properties": {"hidden": {"type": "boolean", "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties."}, "displayOrder": {"type": "integer", "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.", "format": "int32"}, "description": {"type": "string", "description": "A description of the option."}, "label": {"type": "string", "description": "A human-readable option label that will be shown in HubSpot."}, "value": {"type": "string", "description": "The internal value of the option, which must be used when setting the property value through the API."}}, "example": {"description": "Choice number one", "displayOrder": 1, "hidden": false, "label": "Option A", "value": "A"}}}, "searchableInGlobalSearch": {"type": "boolean", "description": "Allow users to search for information entered to this field (limited to 3 properties)"}, "numberDisplayHint": {"type": "string", "description": "Controls how numeric properties are formatted in the HubSpot UI", "enum": ["unformatted", "formatted", "currency", "percentage", "duration", "probability"]}, "hasUniqueValue": {"type": "boolean", "description": "Whether or not the property\'s value must be unique. Once set, this can\'t be changed."}, "fieldType": {"type": "string", "description": "Controls how the property appears in HubSpot."}}, "description": "Defines a property to create.", "example": {"label": "My object property", "type": "enumeration", "fieldType": "select", "groupName": "my_object_information", "displayOrder": 2, "hasUniqueValue": false, "options": [{"label": "Option A", "description": "Choice number one", "value": "A", "displayOrder": 1}, {"label": "Option B", "description": "Choice number two", "value": "B", "displayOrder": 2}]}}}, "labels": {"type": "object", "properties": {"plural": {"type": "string", "description": "The word for multiple objects. (There\u2019s no way to change this later.)"}, "singular": {"type": "string", "description": "The word for one object. (There\u2019s no way to change this later.)"}}, "description": "Singular and plural labels for the object. Used in CRM display.", "example": {"singular": "My object", "plural": "My objects"}}}, "description": "Defines a new object type, its properties, and associations.", "example": {"name": "my_object", "labels": {"singular": "My object", "plural": "My objects"}, "primaryDisplayProperty": "my_object_property", "requiredProperties": ["my_object_property"], "properties": [{"name": "my_object_property", "label": "My object property", "isPrimaryDisplayLabel": true}], "associatedObjects": ["CONTACT"], "metaType": "PORTAL_SPECIFIC"}}', # noqa: E501 + "FETCHHUBSPOTOBJECTRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPDATESERVICESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "HUBSPOTCRMUPSERTRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "HUBSPOTSEARCHCUSTOMOBJECTS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "ARCHIVESERVICESBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "EDITHUBSPOTOBJECT": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATESERVICERECORD": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATEBATCHOFSERVICES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "ARCHIVEHUBSPOTTASKS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATEHUBSPOTTASK": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEBATCHTASKS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATEBATCHTASKS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "RETRIEVEHUBSPOTTASKS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPSERTHUBSPOTTASKS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "SEARCHHUBSPOTTASKS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATETASKINCRM": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "CREATEHUBSPOTTAX": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "UPDATETAXOBJECT": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "CREATEORUPDATETAXRECORDS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATEBATCHTAXES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "RETRIEVETAXRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATETAXBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "SEARCHTAXES": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "ARCHIVETAXBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "DELETEHUBSPOTTICKETSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "UPDATETICKETINFO": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPSERTCRMTICKETS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "RETRIEVETICKETBATCH": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "CREATETICKET": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 + "SEARCHTICKETS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATEBATCHTICKETS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "UPDATETICKETBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "SENDEVENTTOHUBSPOT": '{"required": ["eventTemplateId", "tokens"], "type": "object", "properties": {"eventTemplateId": {"type": "string", "description": "The event template ID."}, "extraData": {"type": "object", "properties": {}, "description": "Additional event-specific data that can be interpreted by the template\'s markdown."}, "timelineIFrame": {"required": ["headerLabel", "height", "linkLabel", "url", "width"], "type": "object", "properties": {"linkLabel": {"type": "string", "description": "The text displaying the link that will display the iframe."}, "headerLabel": {"type": "string", "description": "The label of the modal window that displays the iframe contents."}, "width": {"type": "integer", "description": "The width of the modal window in pixels.", "format": "int32"}, "url": {"type": "string", "description": "The URI of the iframe contents."}, "height": {"type": "integer", "description": "The height of the modal window in pixels.", "format": "int32"}}, "example": {"linkLabel": "View Art3mis", "headerLabel": "Art3mis dog", "url": "https://my.petspot.com/pets/Art3mis", "width": 600, "height": 400}}, "domain": {"type": "string", "description": "The event domain (often paired with utk)."}, "tokens": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of token keys and values associated with the template tokens."}, "id": {"type": "string", "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness."}, "utk": {"type": "string", "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don\'t know a user\'s email, but have an identifying user token in your cookie."}, "email": {"type": "string", "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)."}, "objectId": {"type": "string", "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)."}, "timestamp": {"type": "string", "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object\'s timeline.", "format": "date-time"}}, "description": "The state of the timeline event.", "example": {"eventTemplateId": "1001298", "email": "art3mis-pup@petspot.com", "tokens": {"petName": "Art3mis", "petAge": 3, "petColor": "black"}, "extraData": {"questions": [{"question": "Who\'s a good girl?", "answer": "Bark!"}, {"question": "Do you wanna go on a walk?", "answer": "Woof!"}]}, "timelineIFrame": {"linkLabel": "View Art3mis", "headerLabel": "Art3mis dog", "url": "https://my.petspot.com/pets/Art3mis", "width": 600, "height": 400}}}', # noqa: E501 + "BATCHCREATETIMELINEEVENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "A collection of timeline events we want to create.", "items": {"required": ["eventTemplateId", "tokens"], "type": "object", "properties": {"eventTemplateId": {"type": "string", "description": "The event template ID."}, "extraData": {"type": "object", "properties": {}, "description": "Additional event-specific data that can be interpreted by the template\'s markdown."}, "timelineIFrame": {"required": ["headerLabel", "height", "linkLabel", "url", "width"], "type": "object", "properties": {"linkLabel": {"type": "string", "description": "The text displaying the link that will display the iframe."}, "headerLabel": {"type": "string", "description": "The label of the modal window that displays the iframe contents."}, "width": {"type": "integer", "description": "The width of the modal window in pixels.", "format": "int32"}, "url": {"type": "string", "description": "The URI of the iframe contents."}, "height": {"type": "integer", "description": "The height of the modal window in pixels.", "format": "int32"}}, "example": {"linkLabel": "View Art3mis", "headerLabel": "Art3mis dog", "url": "https://my.petspot.com/pets/Art3mis", "width": 600, "height": 400}}, "domain": {"type": "string", "description": "The event domain (often paired with utk)."}, "tokens": {"type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of token keys and values associated with the template tokens."}, "id": {"type": "string", "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness."}, "utk": {"type": "string", "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don\'t know a user\'s email, but have an identifying user token in your cookie."}, "email": {"type": "string", "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)."}, "objectId": {"type": "string", "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)."}, "timestamp": {"type": "string", "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object\'s timeline.", "format": "date-time"}}, "description": "The state of the timeline event.", "example": {"eventTemplateId": "1001298", "email": "art3mis-pup@petspot.com", "tokens": {"petName": "Art3mis", "petAge": 3, "petColor": "black"}, "extraData": {"questions": [{"question": "Who\'s a good girl?", "answer": "Bark!"}, {"question": "Do you wanna go on a walk?", "answer": "Woof!"}]}, "timelineIFrame": {"linkLabel": "View Art3mis", "headerLabel": "Art3mis dog", "url": "https://my.petspot.com/pets/Art3mis", "width": 600, "height": 400}}}}}, "description": "Used to create timeline events in batches.", "example": {"inputs": [{"eventTemplateId": "1001298", "email": "art3mis-pup@petspot.com", "tokens": {"petName": "Art3mis", "petAge": 3, "petColor": "black"}, "extraData": {"questions": [{"question": "Who\'s a good girl?", "answer": "Bark!"}, {"question": "Do you wanna go on a walk?", "answer": "Woof!"}]}, "timelineIFrame": {"linkLabel": "View Art3mis", "headerLabel": "Art3mis dog", "url": "https://my.petspot.com/pets/Art3mis", "width": 600, "height": 400}}, {"eventTemplateId": "1001298", "email": "pocket-tiger@petspot.com", "tokens": {"petName": "Pocket", "petAge": 3, "petColor": "yellow"}, "extraData": {"questions": [{"question": "Who\'s a good kitty?", "answer": "Purr..."}, {"question": "Will you stop playing with that?", "answer": "Meow!"}]}, "timelineIFrame": {"linkLabel": "View Pocket", "headerLabel": "Pocket Tiger", "url": "https://my.petspot.com/pets/Pocket", "width": 600, "height": 400}}]}}', # noqa: E501 + "UPLOADCALLTRANSCRIPTS": '{"required": ["engagementId", "transcriptCreateUtterances"], "type": "object", "properties": {"transcriptCreateUtterances": {"type": "array", "items": {"required": ["endTimeMillis", "speaker", "startTimeMillis", "text"], "type": "object", "properties": {"endTimeMillis": {"type": "integer", "format": "int32"}, "startTimeMillis": {"type": "integer", "format": "int32"}, "speaker": {"required": ["id", "name"], "type": "object", "properties": {"name": {"type": "string"}, "id": {"type": "string"}, "email": {"type": "string"}}}, "text": {"type": "string"}, "languageCode": {"type": "string"}}}}, "engagementId": {"type": "integer", "format": "int64"}}}', # noqa: E501 + "SEARCHCRMUSERS": '{"type": "object", "properties": {"query": {"type": "string", "description": "The search query string, up to 3000 characters."}, "limit": {"type": "integer", "description": "The maximum results to return, up to 200 objects.", "format": "int32"}, "after": {"type": "string", "description": "A paging cursor token for retrieving subsequent pages."}, "sorts": {"type": "array", "description": "Specifies sorting order based on object properties.", "items": {"type": "string"}}, "properties": {"type": "array", "description": "A list of property names to include in the response.", "items": {"type": "string"}}, "filterGroups": {"type": "array", "description": "Up to 6 groups of filters defining additional query criteria.", "items": {"required": ["filters"], "type": "object", "properties": {"filters": {"type": "array", "items": {"required": ["operator", "propertyName"], "type": "object", "properties": {"highValue": {"type": "string", "description": "The upper boundary value when using ranged-based filters."}, "propertyName": {"type": "string", "description": "The name of the property to apply the filter to."}, "values": {"type": "array", "description": "The values to match against the property.", "items": {"type": "string"}}, "value": {"type": "string", "description": "The value to match against the property."}, "operator": {"type": "string", "description": "null", "enum": ["EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN"]}}, "description": "Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. "}}}}}}, "description": "Describes a search request"}', # noqa: E501 + "CREATEUSERSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["associations", "properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "objectWriteTraceId": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', # noqa: E501 + "ARCHIVEUSERSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', # noqa: E501 + "RETRIEVEHUBSPOTUSERRECORDS": '{"required": ["inputs", "properties", "propertiesWithHistory"], "type": "object", "properties": {"propertiesWithHistory": {"type": "array", "description": "Key-value pairs for setting properties for the new object and their histories.", "items": {"type": "string"}}, "idProperty": {"type": "string", "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID."}, "inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}, "properties": {"type": "array", "description": "Key-value pairs for setting properties for the new object.", "items": {"type": "string"}}}, "description": "Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property."}', # noqa: E501 + "UPSERTHUBSPOTUSERS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object"}, "objectWriteTraceId": {"type": "string", "description": "An identifier for tracing the creation request."}, "id": {"type": "string", "description": "The unique ID of the object."}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents an object used in batch upsert operations, containing an object\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID."}}}}', # noqa: E501 + "UPDATEHUBSPOTUSER": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key value pairs representing the properties of the object."}}, "description": "Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.", "example": {"properties": {"property_checkbox": "false", "property_date": "1572480000000", "property_dropdown": "choice_b", "property_multiple_checkboxes": "chocolate;strawberry", "property_number": "17", "property_radio": "option_1", "property_string": "value"}}}', # noqa: E501 + "UPDATEMULTIPLEUSERS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"idProperty": {"type": "string", "description": "The name of a property whose values are unique for this object", "example": "my_unique_property_name"}, "objectWriteTraceId": {"type": "string", "description": "A unique identifier for tracing the request."}, "id": {"type": "string", "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs representing the properties of the object."}}, "description": "Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties."}}}}', # noqa: E501 + "CREATECRMUSER": '{"required": ["properties"], "type": "object", "properties": {"associations": {"type": "array", "items": {"required": ["to", "types"], "type": "object", "properties": {"types": {"type": "array", "items": {"required": ["associationCategory", "associationTypeId"], "type": "object", "properties": {"associationCategory": {"type": "string", "description": "The category of the association, such as "HUBSPOT_DEFINED".", "enum": ["HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED"]}, "associationTypeId": {"type": "integer", "description": "The ID representing the specific type of association.", "format": "int32"}}, "description": "Defines the type, direction, and details of the relationship between two CRM objects."}}, "to": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Key-value pairs for setting properties for the new object."}}, "description": "Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects."}', # noqa: E501 +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddAllFromSourceListToDestinationList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddAllFromSourceListToDestinationList.json new file mode 100644 index 00000000..87c9ae01 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddAllFromSourceListToDestinationList.json @@ -0,0 +1,144 @@ +{ + "name": "AddAllFromSourceListToDestinationList", + "fully_qualified_name": "HubspotCrmApi.AddAllFromSourceListToDestinationList@0.1.0", + "description": "Add records from a source list to a destination list in HubSpot.\n\nThis tool transfers all records from a specified source list to a destination list in HubSpot CRM, ignoring duplicates. Suitable for destination lists with manual or snapshot processing and source lists with fewer than 100,000 memberships.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "destination_list_id", + "required": true, + "description": "The ILS ID of the MANUAL or SNAPSHOT destination list to which the source list records are added.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` *destination list*, which the *source list* records are added to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "source_list_id", + "required": true, + "description": "The ILS ID of the source list from which records are added to the destination list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the *source list* to grab the records from, which are then added to the *destination list*." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sourceListId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}_addAllFromList'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add-from/{sourceListId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "destination_list_id", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` *destination list*, which the *source list* records are added to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` *destination list*, which the *source list* records are added to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "sourceListId", + "tool_parameter_name": "source_list_id", + "description": "The **ILS ID** of the *source list* to grab the records from, which are then added to the *destination list*.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the *source list* to grab the records from, which are then added to the *destination list*." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddToHubspotCrmList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddToHubspotCrmList.json new file mode 100644 index 00000000..d2d22539 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AddToHubspotCrmList.json @@ -0,0 +1,144 @@ +{ + "name": "AddToHubspotCrmList", + "fully_qualified_name": "HubspotCrmApi.AddToHubspotCrmList@0.1.0", + "description": "Add records to a specified HubSpot CRM list.\n\nUse this tool to add records to a specific HubSpot CRM list. Only works for lists with a processing type of MANUAL or SNAPSHOT. Records that don't exist or are already members will be ignored.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ILS ID of the MANUAL or SNAPSHOT list to add records.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "record_ids_to_add", + "required": true, + "description": "An array of strings representing the IDs of the records to add to the list.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The IDs of the records to add to the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/add_add'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "record_ids_to_add", + "description": "The IDs of the records to add to the list.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The IDs of the records to add to the list." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"The IDs of the records to add to the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallInHubspot.json new file mode 100644 index 00000000..94c1509f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallInHubspot.json @@ -0,0 +1,109 @@ +{ + "name": "ArchiveCallInHubspot", + "fully_qualified_name": "HubspotCrmApi.ArchiveCallInHubspot@0.1.0", + "description": "Archive a call in HubSpot CRM by moving it to the recycle bin.\n\nUse this tool to move a specific call, identified by its `callId`, to the recycling bin in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "call_identifier", + "required": true, + "description": "The unique identifier for the call to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "callId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/calls/{callId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/{callId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "callId", + "tool_parameter_name": "call_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallsBatch.json new file mode 100644 index 00000000..530764da --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCallsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveCallsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveCallsBatch@0.1.0", + "description": "Archive a batch of calls by their IDs.\n\nUse this tool to archive multiple calls in HubSpot CRM by providing their IDs. Archived calls can be restored within 90 days, but call recordings are permanently deleted. Refer to HubSpot's documentation for more details on restoring activities.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "call_ids_to_archive", + "required": true, + "description": "A JSON array of objects, each containing the \"id\" key with the call's ID as a string. These are the IDs of calls to be archived.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "call_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCartsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCartsBatch.json new file mode 100644 index 00000000..6fe363dd --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCartsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveCartsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveCartsBatch@0.1.0", + "description": "Archive multiple carts by ID in a batch operation.\n\nUse this tool to archive a batch of shopping carts by their IDs in HubSpot CRM. This is useful for managing and organizing outdated or completed carts.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_ids_to_archive", + "required": true, + "description": "A JSON array of cart IDs to be archived. Each item should be an object with the key 'id' and its value as a string representing the cart ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "cart_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommercePaymentsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommercePaymentsBatch.json new file mode 100644 index 00000000..4adf8991 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommercePaymentsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveCommercePaymentsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveCommercePaymentsBatch@0.1.0", + "description": "Archive a batch of commerce payments by ID.\n\nUse this tool to archive multiple commerce payments at once by their IDs. Ideal for managing and organizing payment data efficiently by removing outdated or unnecessary records in batches.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_ids_to_archive", + "required": true, + "description": "A JSON array of commerce payment IDs to be archived. Include each ID as a string in the array.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "commerce_payment_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommunication.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommunication.json new file mode 100644 index 00000000..7631ad45 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCommunication.json @@ -0,0 +1,109 @@ +{ + "name": "ArchiveCommunication", + "fully_qualified_name": "HubspotCrmApi.ArchiveCommunication@0.1.0", + "description": "Archive a communication by its ID.\n\nUse this tool to move a communication object to the recycling bin by specifying its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "communication_id", + "required": true, + "description": "The unique identifier for the communication object to be archived. It must be a valid string representing an existing communication ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "communicationId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/communications/{communicationId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/{communicationId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "communicationId", + "tool_parameter_name": "communication_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveContactsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveContactsBatch.json new file mode 100644 index 00000000..deb5baae --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveContactsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveContactsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveContactsBatch@0.1.0", + "description": "Archive a batch of contacts by ID in HubSpot CRM.\n\nUse this tool to archive multiple contacts simultaneously in HubSpot CRM by providing their IDs. This can be useful for managing or cleaning up contact lists efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_ids_to_archive", + "required": true, + "description": "A list of contact IDs to archive in HubSpot CRM. Each ID should be a string representing a unique contact.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "contact_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCoursesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCoursesBatch.json new file mode 100644 index 00000000..385870de --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCoursesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveCoursesBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveCoursesBatch@0.1.0", + "description": "Archive a batch of courses by ID.\n\nUse this tool to archive multiple courses at once by providing their IDs. This simplifies the management of courses by automating the archiving process.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "courses_ids_to_archive", + "required": true, + "description": "A list of course IDs to be archived. Each ID should be a string representing a course to be archived.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "courses_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCrmProperties.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCrmProperties.json new file mode 100644 index 00000000..07e0c9f2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveCrmProperties.json @@ -0,0 +1,198 @@ +{ + "name": "ArchiveCrmProperties", + "fully_qualified_name": "HubspotCrmApi.ArchiveCrmProperties@0.1.0", + "description": "Archive a list of properties in HubSpot CRM.\n\nUse this tool to archive a provided list of properties within a specified object type in HubSpot CRM. It returns a confirmation of successful archiving, regardless of the properties' initial state.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object (e.g., 'contacts', 'companies') for which the properties should be archived.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "properties_list_to_archive", + "required": true, + "description": "A JSON array of properties to archive, each with a 'name' field specifying the property name.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to read or modify." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "properties_list_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to read or modify." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to read or modify.\"\n }\n },\n \"example\": {\n \"name\": \"my_custom_property\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDealInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDealInHubspot.json new file mode 100644 index 00000000..8321048a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDealInHubspot.json @@ -0,0 +1,109 @@ +{ + "name": "ArchiveDealInHubspot", + "fully_qualified_name": "HubspotCrmApi.ArchiveDealInHubspot@0.1.0", + "description": "Archives a specific deal in HubSpot CRM.\n\nUse this tool to move a deal identified by `dealId` to the recycling bin in HubSpot CRM, effectively archiving it.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_id", + "required": true, + "description": "The unique identifier of the deal to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "dealId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/0-3/{dealId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/{dealId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "dealId", + "tool_parameter_name": "deal_id", + "description": "The unique identifier of the deal to be archived.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be archived." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDiscountsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDiscountsBatch.json new file mode 100644 index 00000000..7f11b454 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveDiscountsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveDiscountsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveDiscountsBatch@0.1.0", + "description": "Archive a batch of discounts by their IDs in HubSpot CRM.\n\nThis tool is used to archive multiple discount objects in HubSpot CRM by providing their IDs. It should be called when there's a need to remove or deactivate several discounts at once for organizational or business purposes.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_ids_to_archive", + "required": true, + "description": "A JSON array containing the IDs of discounts to archive in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "discount_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveEmailsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveEmailsBatch.json new file mode 100644 index 00000000..bf3a9d15 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveEmailsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveEmailsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveEmailsBatch@0.1.0", + "description": "Archive a batch of emails by their IDs.\n\nUse this tool to archive multiple emails in the HubSpot CRM by providing their unique IDs. Useful for organizing or cleaning up email records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_ids_to_archive", + "required": true, + "description": "A JSON array of email IDs to be archived. Each element should be an object with an 'id' key, containing the email's unique ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveFeesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveFeesBatch.json new file mode 100644 index 00000000..bf58abb2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveFeesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveFeesBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveFeesBatch@0.1.0", + "description": "Archives a batch of fees by their IDs in HubSpot CRM.\n\nUse this tool to archive multiple fee records in HubSpot CRM by providing their IDs. Ideal for managing outdated or unnecessary fee entries efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_ids_to_archive", + "required": true, + "description": "A JSON array containing the IDs of the fees to archive. Each ID should be a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "fee_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveGoalTargetsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveGoalTargetsBatch.json new file mode 100644 index 00000000..59db81a0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveGoalTargetsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveGoalTargetsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveGoalTargetsBatch@0.1.0", + "description": "Archive multiple goal targets using their IDs in one batch.\n\nThis tool allows users to archive multiple goal targets in HubSpot CRM by providing their IDs. It's useful for efficiently managing goal targets that are no longer needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_ids", + "required": true, + "description": "A JSON array of goal target IDs to archive. Each ID should be a string. This allows batch archiving of specific goal targets in the HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "goal_target_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotLead.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotLead.json new file mode 100644 index 00000000..b52fac63 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotLead.json @@ -0,0 +1,109 @@ +{ + "name": "ArchiveHubspotLead", + "fully_qualified_name": "HubspotCrmApi.ArchiveHubspotLead@0.1.0", + "description": "Archive a HubSpot CRM lead by identifier.\n\nUse this tool to move a HubSpot CRM lead, identified by `leadsId`, to the recycling bin. Ideal for managing and removing leads from active status.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_identifier", + "required": true, + "description": "The unique identifier for the lead to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "leadsId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/leads/{leadsId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/{leadsId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "leadsId", + "tool_parameter_name": "lead_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotObjectsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotObjectsBatch.json new file mode 100644 index 00000000..209d01bb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotObjectsBatch.json @@ -0,0 +1,243 @@ +{ + "name": "ArchiveHubspotObjectsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveHubspotObjectsBatch@0.1.0", + "description": "Archive a batch of HubSpot CRM objects by ID.\n\nUse this tool to archive multiple objects in HubSpot CRM by specifying their IDs and object type, such as 'contacts' or 'companies'.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_object_type", + "required": true, + "description": "Specifies the type of HubSpot CRM objects to archive (e.g., 'contacts', 'companies').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "batch_object_ids", + "required": true, + "description": "A JSON array of objects with 'id' fields to specify which HubSpot CRM objects to archive. Each entry should contain an 'id' key with the object ID as a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "hubspot_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_object_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotTasks.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotTasks.json new file mode 100644 index 00000000..e5fec58d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveHubspotTasks.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveHubspotTasks", + "fully_qualified_name": "HubspotCrmApi.ArchiveHubspotTasks@0.1.0", + "description": "Archive multiple HubSpot tasks by their IDs.\n\nUse this tool to archive a batch of tasks in HubSpot CRM by specifying their IDs. It should be called when you need to update the status of tasks to archived.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_ids_to_archive", + "required": true, + "description": "A JSON array of task IDs to be archived. Each element is an object containing the 'id' of the task.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "task_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveInvoicesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveInvoicesBatch.json new file mode 100644 index 00000000..3b8ff2b3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveInvoicesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveInvoicesBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveInvoicesBatch@0.1.0", + "description": "Archive a batch of invoices by their IDs.\n\nUse this tool to archive multiple invoices at once by providing their IDs. It should be called when there is a need to organize or hide invoices that are no longer active or needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_ids_to_archive", + "required": true, + "description": "A JSON array of invoice IDs to be archived. Each ID should be a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "invoice_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLeadsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLeadsBatch.json new file mode 100644 index 00000000..40a76254 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLeadsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveLeadsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveLeadsBatch@0.1.0", + "description": "Archive a batch of leads by ID in HubSpot CRM.\n\nUse this tool to archive multiple leads in HubSpot CRM by providing their IDs. Useful for managing large numbers of leads efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_ids_to_archive", + "required": true, + "description": "A JSON array of objects containing the lead IDs to be archived. Each object should include an 'id' field as a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "lead_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLineItemsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLineItemsBatch.json new file mode 100644 index 00000000..bcfe669a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveLineItemsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveLineItemsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveLineItemsBatch@0.1.0", + "description": "Archive a batch of line items in HubSpot CRM.\n\nUse this tool to archive multiple line items at once by their IDs within HubSpot CRM. Ideal for managing and organizing CRM data efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_item_ids_to_archive", + "required": true, + "description": "A JSON array of objects, each with an 'id' key specifying the line item ID to archive.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "line_item_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMeetingsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMeetingsBatch.json new file mode 100644 index 00000000..da421d8a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMeetingsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveMeetingsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveMeetingsBatch@0.1.0", + "description": "Archive multiple meetings by IDs in batch.\n\nUse this tool to archive a batch of meetings by their IDs in HubSpot CRM. It is suitable for managing and cleaning up old or unnecessary meeting data efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_ids_to_archive", + "required": true, + "description": "A JSON array of meeting IDs to archive. Each entry should be a JSON object containing the 'id' of the meeting.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "meeting_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleAppointments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleAppointments.json new file mode 100644 index 00000000..818ebdbc --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleAppointments.json @@ -0,0 +1,243 @@ +{ + "name": "ArchiveMultipleAppointments", + "fully_qualified_name": "HubspotCrmApi.ArchiveMultipleAppointments@0.1.0", + "description": "Archive multiple appointments using their IDs.\n\n", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "appointment_object_type", + "required": true, + "description": "The type of object to be archived, typically 'appointments' for this endpoint.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "appointments_to_archive", + "required": true, + "description": "A JSON array of appointment objects, each containing an 'id' field, representing the IDs of appointments to be archived.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "appointment_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "appointments_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleDeals.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleDeals.json new file mode 100644 index 00000000..a4d82f53 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleDeals.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveMultipleDeals", + "fully_qualified_name": "HubspotCrmApi.ArchiveMultipleDeals@0.1.0", + "description": "Archive multiple deals using their IDs in HubSpot CRM.\n\nThis tool is used to archive multiple deals in HubSpot CRM by providing their IDs. It should be called when there is a need to batch archive deals efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_ids", + "required": true, + "description": "A list of deal IDs that need to be archived. This should be an array of strings, each representing a deal ID in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deal_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleListings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleListings.json new file mode 100644 index 00000000..4710766d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveMultipleListings.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveMultipleListings", + "fully_qualified_name": "HubspotCrmApi.ArchiveMultipleListings@0.1.0", + "description": "Archive multiple listings using their IDs.\n\nThis tool archives multiple listings in HubSpot CRM by providing their IDs. It should be called when you need to bulk archive specific listings efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "listings_ids_to_archive", + "required": true, + "description": "A JSON array of objects, each containing the 'id' key for the listings to be archived.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "listings_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveNotesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveNotesBatch.json new file mode 100644 index 00000000..9ac341a3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveNotesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveNotesBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveNotesBatch@0.1.0", + "description": "Archive a batch of notes by their IDs.\n\nUse this tool to archive multiple notes in HubSpot CRM by providing their IDs. Ideal for managing large numbers of notes that need to be archived simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "note_ids_batch", + "required": true, + "description": "A JSON array of note IDs to be archived. Each ID should be a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "note_ids_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveOrdersBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveOrdersBatch.json new file mode 100644 index 00000000..43cb1072 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveOrdersBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveOrdersBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveOrdersBatch@0.1.0", + "description": "Archive a batch of orders by ID in HubSpot CRM.\n\n", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_ids_to_archive", + "required": true, + "description": "A JSON array of order IDs to archive, each with an 'id' field as a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "order_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMail.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMail.json new file mode 100644 index 00000000..0842ec77 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMail.json @@ -0,0 +1,109 @@ +{ + "name": "ArchivePostalMail", + "fully_qualified_name": "HubspotCrmApi.ArchivePostalMail@0.1.0", + "description": "Archive a postal mail object in HubSpot CRM.\n\nThis tool moves a postal mail object, specified by its ID, to the recycling bin in HubSpot CRM. Use this tool when you need to archive a specific postal mail entry.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_id", + "required": true, + "description": "The unique identifier of the postal mail object to be archived.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "postalMailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/postal_mail/{postalMailId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "postalMailId", + "tool_parameter_name": "postal_mail_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMailBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMailBatch.json new file mode 100644 index 00000000..a392fd66 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchivePostalMailBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchivePostalMailBatch", + "fully_qualified_name": "HubspotCrmApi.ArchivePostalMailBatch@0.1.0", + "description": "Archive a batch of postal mail objects using their IDs.\n\nUse this tool to archive multiple postal mail objects in HubSpot CRM by providing their IDs. This is useful for managing large volumes of mailing data efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_ids", + "required": true, + "description": "A JSON array of objects, each containing an 'id' field for the postal mail objects to be archived.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveProductsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveProductsBatch.json new file mode 100644 index 00000000..7d1f60e5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveProductsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveProductsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveProductsBatch@0.1.0", + "description": "Archive a batch of products by ID in HubSpot CRM.\n\nUse this tool to archive multiple products in HubSpot CRM by providing their IDs. It should be called when you need to bulk remove products from the CRM database.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_ids", + "required": true, + "description": "A list of product IDs to be archived from HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "product_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuote.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuote.json new file mode 100644 index 00000000..4b7aa0cf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuote.json @@ -0,0 +1,109 @@ +{ + "name": "ArchiveQuote", + "fully_qualified_name": "HubspotCrmApi.ArchiveQuote@0.1.0", + "description": "Archive a quote by moving it to the recycling bin.\n\nThis tool archives a quote in HubSpot CRM, identified by its `quoteId`, by moving it to the recycling bin. Use this tool when you need to delete a quote temporarily.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_identifier", + "required": true, + "description": "The unique identifier for the quote to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "quoteId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/quotes/{quoteId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/{quoteId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "quoteId", + "tool_parameter_name": "quote_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuotesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuotesBatch.json new file mode 100644 index 00000000..854d2c5e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveQuotesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveQuotesBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveQuotesBatch@0.1.0", + "description": "Archive a batch of quotes in HubSpot CRM.\n\nUse this tool to archive multiple quotes in HubSpot CRM by providing their IDs. It should be called when there's a need to bulk archive quotes to manage CRM records efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_ids_batch", + "required": true, + "description": "A JSON array of objects, each containing an `id` field representing the quote ID to be archived. Use this to specify multiple quotes you want to archive in a single request.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "quote_ids_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveServicesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveServicesBatch.json new file mode 100644 index 00000000..0ec5adb8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveServicesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveServicesBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveServicesBatch@0.1.0", + "description": "Archive multiple services using their IDs in bulk.\n\nUse this tool to archive a batch of services in the CRM by providing their IDs. This is useful for managing large sets of records efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "service_ids_to_archive", + "required": true, + "description": "A JSON array of service IDs to archive. Each ID should be a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "service_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveSubscriptionsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveSubscriptionsBatch.json new file mode 100644 index 00000000..cc29e4f5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveSubscriptionsBatch.json @@ -0,0 +1,210 @@ +{ + "name": "ArchiveSubscriptionsBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveSubscriptionsBatch@0.1.0", + "description": "Archive a batch of subscriptions by ID in HubSpot CRM.\n\nUse this tool to archive multiple subscriptions at once by providing their IDs. This is useful for managing bulk subscription updates in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_ids_to_archive", + "required": true, + "description": "A JSON array of subscription IDs to archive. Each entry should include an 'id' field as a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "subscription_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveTaxBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveTaxBatch.json new file mode 100644 index 00000000..f945ded6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveTaxBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveTaxBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveTaxBatch@0.1.0", + "description": "Archive a batch of taxes by their IDs.\n\nThis tool archives a batch of taxes in the HubSpot CRM by their IDs. It should be called when you need to remove or deactivate multiple tax records at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_ids_to_archive", + "required": true, + "description": "A JSON array of tax IDs to archive. Each ID should be a string representing a tax record in the HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "tax_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveUsersBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveUsersBatch.json new file mode 100644 index 00000000..2ffb82a1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ArchiveUsersBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveUsersBatch", + "fully_qualified_name": "HubspotCrmApi.ArchiveUsersBatch@0.1.0", + "description": "Archives a batch of users by their IDs in HubSpot CRM.\n\nUse this tool to archive multiple users at once by providing their IDs to the HubSpot CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_ids_to_archive", + "required": true, + "description": "A JSON array of user IDs to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "user_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerClientWithObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerClientWithObject.json new file mode 100644 index 00000000..44a1591d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerClientWithObject.json @@ -0,0 +1,208 @@ +{ + "name": "AssociatePartnerClientWithObject", + "fully_qualified_name": "HubspotCrmApi.AssociatePartnerClientWithObject@0.1.0", + "description": "Associate a partner client with another CRM object.\n\nUse this tool to create an association between a partner client and another object in the CRM system, such as a contact, company, or deal. This can help in linking related entities for better data management and relationship tracking.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_client_id", + "required": true, + "description": "The unique identifier for the partner client you wish to associate with another object. This should be a string representing the partner client's ID in the CRM system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerClientId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of the object to associate with the partner client (e.g., contact, company, deal).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "target_object_id", + "required": true, + "description": "The unique identifier of the CRM object you are associating with the partner client. This could be any valid object ID such as that of a contact, company, or deal.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectId" + }, + { + "name": "association_type", + "required": true, + "description": "Specifies the type of association (e.g., contact, company, deal) between the partner client and the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "partnerClientId", + "tool_parameter_name": "partner_client_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectId", + "tool_parameter_name": "target_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationType", + "tool_parameter_name": "association_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerService.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerService.json new file mode 100644 index 00000000..a4463fa5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/AssociatePartnerService.json @@ -0,0 +1,208 @@ +{ + "name": "AssociatePartnerService", + "fully_qualified_name": "HubspotCrmApi.AssociatePartnerService@0.1.0", + "description": "Associate a partner service with another CRM object.\n\nUse this tool to associate a partner service with another CRM object in HubSpot, such as contacts, companies, or deals. This is useful when you want to establish connections between different objects in your CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_service_id", + "required": true, + "description": "The identifier for the partner service to associate with another object. This should be a valid string representing the unique ID of the partner service in the CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerServiceId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of CRM object to associate with the partner service, e.g., 'contacts', 'companies', or 'deals'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "target_object_id", + "required": true, + "description": "The ID of the target object you want to associate with the partner service. This should be a valid object ID in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectId" + }, + { + "name": "association_type", + "required": true, + "description": "Specifies the type of association to create between the partner service and another object (e.g., \"owner\", \"affiliate\").", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "partnerServiceId", + "tool_parameter_name": "partner_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectId", + "tool_parameter_name": "target_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationType", + "tool_parameter_name": "association_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchCreateTimelineEvents.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchCreateTimelineEvents.json new file mode 100644 index 00000000..7e75f8ea --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchCreateTimelineEvents.json @@ -0,0 +1,386 @@ +{ + "name": "BatchCreateTimelineEvents", + "fully_qualified_name": "HubspotCrmApi.BatchCreateTimelineEvents@0.1.0", + "description": "Batch create multiple timeline event instances.\n\nBatch create multiple timeline events using an event template. Created events are immutable and can trigger updates to object properties if configured in the template.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "timeline_event_definitions", + "required": true, + "description": "A JSON array of event definitions, each requiring an eventTemplateId, domain, and additional optional fields like extraData, timelineIFrame, tokens, and more. This defines the timeline events to create.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "eventTemplateId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "extraData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "linkLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The width of the modal window in pixels." + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI of the iframe contents." + }, + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The height of the modal window in pixels." + } + }, + "inner_properties": null, + "description": null + }, + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline." + } + }, + "description": "A collection of timeline events we want to create." + } + }, + "inner_properties": null, + "description": "The timeline event definition." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/integrators/timeline/v3/events/batch/create_createBatch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.deals.write", + "crm.objects.contacts.write", + "crm.objects.companies.highly_sensitive.write.v2", + "tickets.sensitive.v2", + "tickets.highly_sensitive.v2", + "crm.schemas.companies.write", + "crm.objects.companies.write", + "tickets", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.schemas.contacts.write", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.contacts.highly_sensitive.write.v2", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/integrators/timeline/v3/events/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "timeline_event_definitions", + "description": "The timeline event definition.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "eventTemplateId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "extraData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "linkLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The width of the modal window in pixels." + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI of the iframe contents." + }, + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The height of the modal window in pixels." + } + }, + "inner_properties": null, + "description": null + }, + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline." + } + }, + "description": "A collection of timeline events we want to create." + } + }, + "inner_properties": null, + "description": "The timeline event definition." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"The timeline event definition.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"A collection of timeline events we want to create.\",\n \"items\": {\n \"required\": [\n \"eventTemplateId\",\n \"tokens\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"eventTemplateId\": {\n \"type\": \"string\",\n \"description\": \"The event template ID.\"\n },\n \"extraData\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional event-specific data that can be interpreted by the template's markdown.\"\n },\n \"timelineIFrame\": {\n \"required\": [\n \"headerLabel\",\n \"height\",\n \"linkLabel\",\n \"url\",\n \"width\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"linkLabel\": {\n \"type\": \"string\",\n \"description\": \"The text displaying the link that will display the iframe.\"\n },\n \"headerLabel\": {\n \"type\": \"string\",\n \"description\": \"The label of the modal window that displays the iframe contents.\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"description\": \"The width of the modal window in pixels.\",\n \"format\": \"int32\"\n },\n \"url\": {\n \"type\": \"string\",\n \"description\": \"The URI of the iframe contents.\"\n },\n \"height\": {\n \"type\": \"integer\",\n \"description\": \"The height of the modal window in pixels.\",\n \"format\": \"int32\"\n }\n },\n \"example\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n },\n \"domain\": {\n \"type\": \"string\",\n \"description\": \"The event domain (often paired with utk).\"\n },\n \"tokens\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A collection of token keys and values associated with the template tokens.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness.\"\n },\n \"utk\": {\n \"type\": \"string\",\n \"description\": \"Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie.\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`).\"\n },\n \"objectId\": {\n \"type\": \"string\",\n \"description\": \"The CRM object identifier. This is required for every event other than contacts (where utk or email can be used).\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"description\": \"The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.\",\n \"format\": \"date-time\"\n }\n },\n \"description\": \"The state of the timeline event.\",\n \"example\": {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"art3mis-pup@petspot.com\",\n \"tokens\": {\n \"petName\": \"Art3mis\",\n \"petAge\": 3,\n \"petColor\": \"black\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good girl?\",\n \"answer\": \"Bark!\"\n },\n {\n \"question\": \"Do you wanna go on a walk?\",\n \"answer\": \"Woof!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n }\n }\n }\n },\n \"description\": \"Used to create timeline events in batches.\",\n \"example\": {\n \"inputs\": [\n {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"art3mis-pup@petspot.com\",\n \"tokens\": {\n \"petName\": \"Art3mis\",\n \"petAge\": 3,\n \"petColor\": \"black\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good girl?\",\n \"answer\": \"Bark!\"\n },\n {\n \"question\": \"Do you wanna go on a walk?\",\n \"answer\": \"Woof!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n },\n {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"pocket-tiger@petspot.com\",\n \"tokens\": {\n \"petName\": \"Pocket\",\n \"petAge\": 3,\n \"petColor\": \"yellow\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good kitty?\",\n \"answer\": \"Purr...\"\n },\n {\n \"question\": \"Will you stop playing with that?\",\n \"answer\": \"Meow!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Pocket\",\n \"headerLabel\": \"Pocket Tiger\",\n \"url\": \"https://my.petspot.com/pets/Pocket\",\n \"width\": 600,\n \"height\": 400\n }\n }\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadAssociations.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadAssociations.json new file mode 100644 index 00000000..5e6cfba5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadAssociations.json @@ -0,0 +1,275 @@ +{ + "name": "BatchReadAssociations", + "fully_qualified_name": "HubspotCrmApi.BatchReadAssociations@0.1.0", + "description": "Retrieve batch associations between CRM object types in HubSpot.\n\nThis tool retrieves a batch of association data between specified CRM object types in HubSpot, such as contacts to companies. Use it to efficiently access multiple associations at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_object_type", + "required": true, + "description": "The CRM object type from which the associations originate, such as 'contacts' or 'deals'. Specify a valid CRM object type.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectType" + }, + { + "name": "destination_object_type", + "required": true, + "description": "Specify the CRM object type to associate with, such as 'contacts' or 'companies'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "batch_association_requests", + "required": true, + "description": "A JSON array containing objects with IDs to retrieve the associations for. This enables batch retrieval of association data between specified CRM object types.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "fromObjectType", + "tool_parameter_name": "source_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "destination_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_association_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadContacts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadContacts.json new file mode 100644 index 00000000..1f0c3bcf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadContacts.json @@ -0,0 +1,226 @@ +{ + "name": "BatchReadContacts", + "fully_qualified_name": "HubspotCrmApi.BatchReadContacts@0.1.0", + "description": "Retrieve multiple contacts using internal IDs or unique properties.\n\nUse this tool to read a batch of contacts from HubSpot CRM by providing their internal IDs or unique property values. Ideal for situations where multiple contact details are needed simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contacts_request_body", + "required": true, + "description": "JSON object containing contact read parameters: properties, propertiesWithHistory, idProperty, and inputs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to True to return only archived contacts. False excludes them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "contacts_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadPartnerClients.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadPartnerClients.json new file mode 100644 index 00000000..49e76f55 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchReadPartnerClients.json @@ -0,0 +1,226 @@ +{ + "name": "BatchReadPartnerClients", + "fully_qualified_name": "HubspotCrmApi.BatchReadPartnerClients@0.1.0", + "description": "Fetch batch details of partner clients in HubSpot CRM.\n\nUse this tool to retrieve information for multiple partner clients at once from HubSpot CRM. Ideal for scenarios where bulk data about partner clients is needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_clients_request_body", + "required": true, + "description": "JSON object containing partner client details such as properties with history, id properties, inputs, and properties to retrieve batch data.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "include_archived", + "required": false, + "description": "Set to true to include archived partner clients in the batch results. Default is false.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/partner_clients/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "include_archived", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "partner_clients_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchRetrieveHubspotRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchRetrieveHubspotRecords.json new file mode 100644 index 00000000..22072258 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchRetrieveHubspotRecords.json @@ -0,0 +1,324 @@ +{ + "name": "BatchRetrieveHubspotRecords", + "fully_qualified_name": "HubspotCrmApi.BatchRetrieveHubspotRecords@0.1.0", + "description": "Retrieve HubSpot CRM records using batch read.\n\nThis tool retrieves records from HubSpot CRM by record ID or custom unique property in a batch. Use it when you need to access multiple entities by their specific identifiers.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object to retrieve, such as 'contact', 'deal', or 'company'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "hubspot_record_batch_request", + "required": true, + "description": "A JSON object containing 'idProperty' for custom property retrieval, 'inputs' with record IDs or custom properties, 'properties' for new object properties, and 'propertiesWithHistory' for property histories. Use 'idProperty' only for custom unique value property retrieval, otherwise omit it.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_results", + "required": false, + "description": "Set to true to return only archived results. Use false to include active records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "hubspot_record_batch_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpdateNotes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpdateNotes.json new file mode 100644 index 00000000..2ce48f45 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpdateNotes.json @@ -0,0 +1,193 @@ +{ + "name": "BatchUpdateNotes", + "fully_qualified_name": "HubspotCrmApi.BatchUpdateNotes@0.1.0", + "description": "Update multiple notes in HubSpot CRM by ID or property.\n\nUse this tool to update a batch of notes in HubSpot CRM by their internal IDs or unique property values. Ideal for situations where multiple notes need simultaneous modifications.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "update_notes_payload", + "required": true, + "description": "JSON payload containing an array of objects with 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update multiple notes in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "update_notes_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpsertRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpsertRecords.json new file mode 100644 index 00000000..0ebdc79f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/BatchUpsertRecords.json @@ -0,0 +1,193 @@ +{ + "name": "BatchUpsertRecords", + "fully_qualified_name": "HubspotCrmApi.BatchUpsertRecords@0.1.0", + "description": "Create or update HubSpot CRM records via unique identifier.\n\nThis tool creates or updates HubSpot CRM records based on a unique property identifier specified by the `idProperty` parameter. It is useful for ensuring records are maintained accurately in the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_records_payload", + "required": true, + "description": "A JSON object containing an array of records, each with a unique `idProperty` and related properties for upsert operation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "crm_records_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAppointments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAppointments.json new file mode 100644 index 00000000..cf24753b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAppointments.json @@ -0,0 +1,369 @@ +{ + "name": "CreateBatchAppointments", + "fully_qualified_name": "HubspotCrmApi.CreateBatchAppointments@0.1.0", + "description": "Create multiple appointments in one request.\n\nThis tool facilitates the creation of multiple appointments in a single API call. Use it when you need to schedule several appointments efficiently without making multiple requests.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "appointment_object_type", + "required": true, + "description": "Specify the type of CRM object for the appointments, typically 'appointments'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "appointment_details", + "required": true, + "description": "A JSON object containing details for multiple appointments. Includes properties like associations, object trace ID, and other appointment specifics.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "appointment_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "appointment_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAssociationsHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAssociationsHubspot.json new file mode 100644 index 00000000..ebd5bd1e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchAssociationsHubspot.json @@ -0,0 +1,343 @@ +{ + "name": "CreateBatchAssociationsHubspot", + "fully_qualified_name": "HubspotCrmApi.CreateBatchAssociationsHubspot@0.1.0", + "description": "Batch create associations between object types in HubSpot CRM.\n\nThis tool is used to batch create associations between two specified object types in HubSpot CRM, such as associating multiple contacts with companies in one request.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "from_object_type", + "required": true, + "description": "The type of the source object for the association (e.g., 'contact', 'company').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectType" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of the object that the associations will point to (e.g., 'contacts', 'companies').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "batch_associations_request", + "required": true, + "description": "JSON object containing an array of associations. Each entry should specify 'from' and 'to' object IDs and association 'type'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "fromObjectType", + "tool_parameter_name": "from_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_associations_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"from\",\n \"to\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"example\": {\n \"from\": {\n \"id\": \"53628\"\n },\n \"to\": {\n \"id\": \"12726\"\n },\n \"type\": \"contact_to_company\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchCommercePayments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchCommercePayments.json new file mode 100644 index 00000000..fd39048d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchCommercePayments.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchCommercePayments", + "fully_qualified_name": "HubspotCrmApi.CreateBatchCommercePayments@0.1.0", + "description": "Create a batch of commerce payments in HubSpot CRM.\n\nThis tool is used to create a batch of commerce payments in the HubSpot CRM system. It should be called when there's a need to process multiple payment entries at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payments_batch_data", + "required": true, + "description": "A JSON object containing an array of payment entries to process. Each entry requires specifics such as 'associations', 'objectWriteTraceId', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "commerce_payments_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchContacts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchContacts.json new file mode 100644 index 00000000..f352b207 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchContacts.json @@ -0,0 +1,255 @@ +{ + "name": "CreateBatchContacts", + "fully_qualified_name": "HubspotCrmApi.CreateBatchContacts@0.1.0", + "description": "Create a batch of contacts in HubSpot CRM.\n\nUse this tool to create multiple contacts in HubSpot CRM at once. Ideal for bulk uploading contact information.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contacts_data", + "required": true, + "description": "JSON array containing details for each contact to be created, with key-value pairs for properties and optional associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "contacts_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchDiscountsHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchDiscountsHubspot.json new file mode 100644 index 00000000..6eba95d8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchDiscountsHubspot.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchDiscountsHubspot", + "fully_qualified_name": "HubspotCrmApi.CreateBatchDiscountsHubspot@0.1.0", + "description": "Create a batch of discounts in HubSpot.\n\nUse this tool to create multiple discounts simultaneously in HubSpot CRM. It should be called when batch creation of discounts is needed, providing an efficient way to manage discount entries.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_discounts_data", + "required": true, + "description": "JSON data for creating a batch of discounts. It includes an array of discount entries, each with properties like associations, object write trace ID, and specific properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_discounts_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchFees.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchFees.json new file mode 100644 index 00000000..de8db1bb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchFees.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchFees", + "fully_qualified_name": "HubspotCrmApi.CreateBatchFees@0.1.0", + "description": "Create a batch of fees in HubSpot CRM.\n\nThis tool allows the creation of multiple fees in a single batch within HubSpot CRM. It should be called when there is a need to add a set of new fees to the CRM system efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fees_batch_request_body", + "required": true, + "description": "A JSON object containing the details for each fee to be created, including associations and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "fees_batch_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchMeetings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchMeetings.json new file mode 100644 index 00000000..26795a22 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchMeetings.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchMeetings", + "fully_qualified_name": "HubspotCrmApi.CreateBatchMeetings@0.1.0", + "description": "Create a batch of meetings in HubSpot CRM.\n\nUse this tool to efficiently create multiple meetings at once in HubSpot CRM. Ideal for scheduling large numbers of meetings in a single operation.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meetings_batch_data", + "required": true, + "description": "A JSON object containing an array of meetings data to be created, including associations, object write trace ID, and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "meetings_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCalls.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCalls.json new file mode 100644 index 00000000..f3663ef1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCalls.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfCalls", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfCalls@0.1.0", + "description": "Create a batch of calls with specified properties and associations.\n\nThis tool is used to create multiple calls at once in HubSpot CRM, specifying properties for each call and defining associations with other CRM records as needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_call_data", + "required": true, + "description": "JSON object containing details for each call, including properties and associations. The `inputs` array specifies each call with its properties and any associations to CRM records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_call_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCarts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCarts.json new file mode 100644 index 00000000..640a1599 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCarts.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfCarts", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfCarts@0.1.0", + "description": "Create a batch of carts efficiently in HubSpot CRM.\n\nUse this tool to create multiple shopping carts at once within HubSpot CRM. Ideal for managing cart data in bulk efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "carts_batch_data", + "required": true, + "description": "JSON array detailing the carts to create. Includes associations, object IDs, and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "carts_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCompanies.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCompanies.json new file mode 100644 index 00000000..760e95d7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCompanies.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfCompanies", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfCompanies@0.1.0", + "description": "Create a batch of companies with properties and associations.\n\nThis tool allows you to create multiple companies in one request. Each company can have specific property values and can be associated with other CRM records. Use this when needing to add several companies at once along with their details and relationships.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_batch_data", + "required": true, + "description": "JSON array containing company data, each with `properties` for company details and `associations` to link with other CRM records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "company_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCourses.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCourses.json new file mode 100644 index 00000000..f1798a16 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfCourses.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfCourses", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfCourses@0.1.0", + "description": "Create a batch of courses in CRM.\n\nUse this tool to add multiple courses at once to HubSpot CRM. Ideal for instances where you need to create several course entries simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "courses_batch_data", + "required": true, + "description": "A JSON array with each item detailing a course to create, including associations, objectWriteTraceId, and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "courses_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfEmails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfEmails.json new file mode 100644 index 00000000..d4caea3e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfEmails.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfEmails", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfEmails@0.1.0", + "description": "Create a batch of emails with specified properties.\n\nThis tool is used to create multiple emails at once in a batch, using specified properties, and returns the details of the created email objects. Ideal for situations where several emails need to be generated and saved in the CRM system at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_batch_details", + "required": true, + "description": "JSON containing an array of email objects with their properties and associations. Each object can include details like associations, object write trace ID, and other specific properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_batch_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfInvoices.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfInvoices.json new file mode 100644 index 00000000..59c86f40 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfInvoices.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfInvoices", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfInvoices@0.1.0", + "description": "Create a batch of invoices swiftly.\n\nUse this tool to create multiple invoices at once in HubSpot CRM when bulk billing is required.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_batch_data", + "required": true, + "description": "JSON object containing a list of invoices with their properties and associations. Each invoice should include necessary details like properties, associations, and object write trace IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "invoice_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfNotes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfNotes.json new file mode 100644 index 00000000..de48f12a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfNotes.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfNotes", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfNotes@0.1.0", + "description": "Create multiple notes in a CRM batch operation.\n\nUse this tool to create a batch of notes in HubSpot CRM. Ideal for adding multiple notes efficiently in a single operation.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_notes_data", + "required": true, + "description": "JSON structure containing note details. Each note should include associations, objectWriteTraceId, and other properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_notes_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfProducts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfProducts.json new file mode 100644 index 00000000..fbe0b653 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfProducts.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfProducts", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfProducts@0.1.0", + "description": "Create a batch of products in HubSpot CRM.\n\nUse this tool to add multiple products to the HubSpot CRM in a single batch. Ideal for updating product catalogs efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_batch_data", + "required": true, + "description": "A JSON object containing an array of products to be created. Each product should include details like properties, associations, and an optional object write trace ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "product_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfQuotes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfQuotes.json new file mode 100644 index 00000000..471ee325 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfQuotes.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfQuotes", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfQuotes@0.1.0", + "description": "Creates a batch of quotes in HubSpot CRM.\n\nThis tool is used to create multiple quotes at once using HubSpot CRM's batch creation endpoint. Ideal for automating the quote generation process for multiple clients or deals.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quotes_batch_data", + "required": true, + "description": "A structured JSON object containing an array of quote details to create. Each quote entry should include associations, objectWriteTraceId, and custom properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "quotes_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfServices.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfServices.json new file mode 100644 index 00000000..2c6bf900 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOfServices.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOfServices", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOfServices@0.1.0", + "description": "Create a batch of services in HubSpot CRM.\n\nUse this tool to create multiple service entries at once within HubSpot CRM. This is useful for efficiently managing and organizing service-related data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "service_batch_creation_data", + "required": true, + "description": "A JSON array of service objects to create, each with properties, associations, and specific trace IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "service_batch_creation_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOrders.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOrders.json new file mode 100644 index 00000000..a3281a84 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchOrders.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchOrders", + "fully_qualified_name": "HubspotCrmApi.CreateBatchOrders@0.1.0", + "description": "Create a batch of orders in HubSpot CRM.\n\nUse this tool to create multiple orders at once in HubSpot CRM. It is suitable when you need to efficiently process and record several orders simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "orders_batch_data", + "required": true, + "description": "JSON array of orders to be created. Each order includes associations, properties, and an objectWriteTraceId.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "orders_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchProperties.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchProperties.json new file mode 100644 index 00000000..2286b0b3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchProperties.json @@ -0,0 +1,554 @@ +{ + "name": "CreateBatchProperties", + "fully_qualified_name": "HubspotCrmApi.CreateBatchProperties@0.1.0", + "description": "Create a batch of properties for a specified object type in HubSpot.\n\nThis tool facilitates the creation of multiple properties at once for any specified object type in HubSpot CRM, using the standard rules applied to individual property creation.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the type of CRM object for which to create properties (e.g., contacts, deals, companies).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_batch_request", + "required": true, + "description": "A JSON object containing an array of property creations. Each entry should define attributes like name, label, type, and options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property. This field is required for enumerated properties." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "externalOptions": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "property_batch_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property. This field is required for enumerated properties." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "externalOptions": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"fieldType\",\n \"groupName\",\n \"label\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"bool\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"number\",\n \"phone_number\",\n \"string\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property can be used in a HubSpot form.\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"enum\": [\n \"non_sensitive\",\n \"sensitive\",\n \"highly_sensitive\"\n ]\n },\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property group the property belongs to.\"\n },\n \"referencedObjectType\": {\n \"type\": \"string\",\n \"description\": \"Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property name, which must be used when referencing the property via the API.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of valid options for the property. This field is required for enumerated properties.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"calculationFormula\": {\n \"type\": \"string\",\n \"description\": \"Represents a formula that is used to compute a calculated property.\"\n },\n \"hasUniqueValue\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property's value must be unique. Once set, this can't be changed.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\",\n \"enum\": [\n \"booleancheckbox\",\n \"calculation_equation\",\n \"checkbox\",\n \"date\",\n \"file\",\n \"html\",\n \"number\",\n \"phonenumber\",\n \"radio\",\n \"select\",\n \"text\",\n \"textarea\"\n ]\n },\n \"externalOptions\": {\n \"type\": \"boolean\",\n \"description\": \"Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false.\"\n }\n },\n \"example\": {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchSubscriptions.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchSubscriptions.json new file mode 100644 index 00000000..00a53536 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchSubscriptions.json @@ -0,0 +1,336 @@ +{ + "name": "CreateBatchSubscriptions", + "fully_qualified_name": "HubspotCrmApi.CreateBatchSubscriptions@0.1.0", + "description": "Create a batch of subscriptions in HubSpot CRM.\n\nThis tool is used to create multiple subscriptions at once in HubSpot CRM. Call this tool when you need to add several subscriptions simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_batch_data", + "required": true, + "description": "A JSON payload containing arrays of subscription data, including associations and properties for each subscription to be created in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "subscription_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTasks.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTasks.json new file mode 100644 index 00000000..f3a09a2e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTasks.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchTasks", + "fully_qualified_name": "HubspotCrmApi.CreateBatchTasks@0.1.0", + "description": "Create a batch of tasks in HubSpot CRM.\n\nThis tool is used to create multiple tasks at once in HubSpot CRM, streamlining task management processes.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_batch_request", + "required": true, + "description": "A JSON object containing an array of tasks to be created, each with properties, associations, and optional trace IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "task_batch_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTickets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTickets.json new file mode 100644 index 00000000..be455083 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateBatchTickets.json @@ -0,0 +1,271 @@ +{ + "name": "CreateBatchTickets", + "fully_qualified_name": "HubspotCrmApi.CreateBatchTickets@0.1.0", + "description": "Create a batch of tickets in HubSpot CRM.\n\nUse this tool to create multiple tickets in HubSpot CRM at once. You can specify property values for each ticket and define associations with other CRM records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_batch_request", + "required": true, + "description": "A JSON object containing an array of `inputs`, each with `properties` for ticket details and optional `associations` to connect with other CRM records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_batch_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCartHubspotCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCartHubspotCrm.json new file mode 100644 index 00000000..93f1c3d0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCartHubspotCrm.json @@ -0,0 +1,237 @@ +{ + "name": "CreateCartHubspotCrm", + "fully_qualified_name": "HubspotCrmApi.CreateCartHubspotCrm@0.1.0", + "description": "Create a cart and retrieve its details including ID.\n\nUse this tool to create a new cart in HubSpot CRM with specified properties. It returns a detailed cart object including its unique ID. Ideal for setting up new customer carts.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_details", + "required": true, + "description": "JSON object containing associations and properties for the new cart. Includes optional associations with categories and types, and required key-value properties for the cart itself.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "cart_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCommercePayment.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCommercePayment.json new file mode 100644 index 00000000..a38e13c0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCommercePayment.json @@ -0,0 +1,237 @@ +{ + "name": "CreateCommercePayment", + "fully_qualified_name": "HubspotCrmApi.CreateCommercePayment@0.1.0", + "description": "Create a commerce payment and return its details.\n\nUse this tool to create a new commerce payment in the HubSpot CRM. It returns the details of the payment, including the unique ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_properties", + "required": true, + "description": "JSON object containing key-value pairs to set properties for the new commerce payment, including associations and their details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "commerce_payment_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCompanyHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCompanyHubspot.json new file mode 100644 index 00000000..6cf61dcf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCompanyHubspot.json @@ -0,0 +1,237 @@ +{ + "name": "CreateCompanyHubspot", + "fully_qualified_name": "HubspotCrmApi.CreateCompanyHubspot@0.1.0", + "description": "Create a new company in HubSpot CRM.\n\nUse this tool to create a single company in HubSpot CRM. It allows you to define property values for the company and specify associations with other CRM records. Ideal for organizing and managing company information efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_data", + "required": true, + "description": "JSON object containing company properties and associations. Include a 'properties' object for company property values and an 'associations' array for linking with other CRM records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The company property values to set." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "company_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The company property values to set." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The company property values to set.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmAppointment.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmAppointment.json new file mode 100644 index 00000000..45d664ce --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmAppointment.json @@ -0,0 +1,335 @@ +{ + "name": "CreateCrmAppointment", + "fully_qualified_name": "HubspotCrmApi.CreateCrmAppointment@0.1.0", + "description": "Create an appointment in the CRM with specified properties.\n\nUse this tool to schedule a new appointment within the CRM system. It requires the necessary properties for the appointment and returns the created appointment object along with its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "appointment_object_type", + "required": true, + "description": "Specifies the type of CRM object to create. For appointments, this should be 'appointment'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "appointment_details", + "required": true, + "description": "A JSON object containing key-value pairs for appointment properties and associations details like category and type ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "appointment_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "appointment_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObject.json new file mode 100644 index 00000000..bf84f292 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObject.json @@ -0,0 +1,335 @@ +{ + "name": "CreateCrmObject", + "fully_qualified_name": "HubspotCrmApi.CreateCrmObject@0.1.0", + "description": "Create a CRM object and retrieve its details.\n\nThis tool creates a new CRM object in HubSpot with specified properties and returns the object, including its ID. Use it to add contacts, companies, deals, etc., to your HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object to create, such as 'contact', 'company', or 'deal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_properties", + "required": true, + "description": "A JSON object containing key-value pairs that define the properties for the new CRM object, including any associations. Specify the properties and association details as needed.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "object_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectAssociation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectAssociation.json new file mode 100644 index 00000000..99df849a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectAssociation.json @@ -0,0 +1,208 @@ +{ + "name": "CreateCrmObjectAssociation", + "fully_qualified_name": "HubspotCrmApi.CreateCrmObjectAssociation@0.1.0", + "description": "Create an association between HubSpot CRM objects.\n\nThis tool creates an association between specified HubSpot CRM objects. Use it when you need to link different CRM objects (like contacts and companies) within the HubSpot platform.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type_schema", + "required": true, + "description": "Fully qualified name or object type ID of your CRM object schema to create the association.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "primary_object_type_id", + "required": true, + "description": "ID of the primary object type to link from in the CRM system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the primary object type to link from." + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectTypeId" + }, + { + "name": "target_object_type_id", + "required": true, + "description": "ID of the target object type to link to in the CRM association.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the target object type to link to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectTypeId" + }, + { + "name": "association_name", + "required": false, + "description": "A unique name for the association between CRM objects. This helps identify the link.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique name for this association." + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm-object-schemas/v3/schemas/{objectType}/associations_createAssociation'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.custom.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/associations", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type_schema", + "description": "Fully qualified name or object type ID of your schema.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "fromObjectTypeId", + "tool_parameter_name": "primary_object_type_id", + "description": "ID of the primary object type to link from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the primary object type to link from." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "association_name", + "description": "A unique name for this association.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique name for this association." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectTypeId", + "tool_parameter_name": "target_object_type_id", + "description": "ID of the target object type to link to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the target object type to link to." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"Attributes that define the association.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"fromObjectTypeId\",\n \"toObjectTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"fromObjectTypeId\": {\n \"type\": \"string\",\n \"description\": \"ID of the primary object type to link from.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"A unique name for this association.\"\n },\n \"toObjectTypeId\": {\n \"type\": \"string\",\n \"description\": \"ID of the target object type to link to.\"\n }\n },\n \"description\": \"Defines an association between two object types.\",\n \"example\": {\n \"fromObjectTypeId\": \"2-123456\",\n \"toObjectTypeId\": \"contact\",\n \"name\": \"my_object_to_contact\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectSchema.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectSchema.json new file mode 100644 index 00000000..35751066 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmObjectSchema.json @@ -0,0 +1,697 @@ +{ + "name": "CreateCrmObjectSchema", + "fully_qualified_name": "HubspotCrmApi.CreateCrmObjectSchema@0.1.0", + "description": "Create a new CRM object schema in HubSpot.\n\nUse this tool to create a new object schema in HubSpot's CRM. This is useful when you need to define a new structure for CRM objects tailored to specific business needs.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_schema_definition", + "required": true, + "description": "JSON object defining the CRM object schema, including properties, associations, and display settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "secondaryDisplayProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type." + }, + "requiredProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of properties that should be **required** when creating an object of this type." + }, + "searchableProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search." + }, + "primaryDisplayProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique name for this object. For internal use only." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "associatedObjects": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Associations defined for this object type." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "optionSortStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DISPLAY_ORDER", + "ALPHABETICAL" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property options will be sorted in the HubSpot UI." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property will display the currency symbol in the HubSpot UI." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "string", + "number", + "date", + "datetime", + "enumeration", + "bool" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property can be used in a HubSpot form." + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group this property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal." + }, + "textDisplayHint": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "unformatted_single_line", + "multi_line", + "email", + "phone_number", + "domain_name", + "ip_address", + "physical_address", + "postal_code" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how text properties are formatted in the HubSpot UI" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property from the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of available options for the property. This field is only required for enumerated properties." + }, + "searchableInGlobalSearch": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow users to search for information entered to this field (limited to 3 properties)" + }, + "numberDisplayHint": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "unformatted", + "formatted", + "currency", + "percentage", + "duration", + "probability" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how numeric properties are formatted in the HubSpot UI" + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + } + }, + "description": "Properties defined for this object type." + }, + "labels": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "plural": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "inner_properties": null, + "description": "Singular and plural labels for the object. Used in CRM display." + } + }, + "inner_properties": null, + "description": "Object schema definition, including properties and associations." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm-object-schemas/v3/schemas_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.custom.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "object_schema_definition", + "description": "Object schema definition, including properties and associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "secondaryDisplayProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type." + }, + "requiredProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of properties that should be **required** when creating an object of this type." + }, + "searchableProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search." + }, + "primaryDisplayProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique name for this object. For internal use only." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "associatedObjects": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Associations defined for this object type." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "optionSortStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DISPLAY_ORDER", + "ALPHABETICAL" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property options will be sorted in the HubSpot UI." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "showCurrencySymbol": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property will display the currency symbol in the HubSpot UI." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "string", + "number", + "date", + "datetime", + "enumeration", + "bool" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property can be used in a HubSpot form." + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group this property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Defines the options this property will return, e.g. OWNER would return name of users on the portal." + }, + "textDisplayHint": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "unformatted_single_line", + "multi_line", + "email", + "phone_number", + "domain_name", + "ip_address", + "physical_address", + "postal_code" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how text properties are formatted in the HubSpot UI" + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property from the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of available options for the property. This field is only required for enumerated properties." + }, + "searchableInGlobalSearch": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow users to search for information entered to this field (limited to 3 properties)" + }, + "numberDisplayHint": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "unformatted", + "formatted", + "currency", + "percentage", + "duration", + "probability" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how numeric properties are formatted in the HubSpot UI" + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + } + }, + "description": "Properties defined for this object type." + }, + "labels": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "plural": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "singular": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for one object. (There\u2019s no way to change this later.)" + } + }, + "inner_properties": null, + "description": "Singular and plural labels for the object. Used in CRM display." + } + }, + "inner_properties": null, + "description": "Object schema definition, including properties and associations." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"Object schema definition, including properties and associations.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"associatedObjects\",\n \"labels\",\n \"name\",\n \"properties\",\n \"requiredProperties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"secondaryDisplayProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"requiredProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of properties that should be **required** when creating an object of this type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"searchableProperties\": {\n \"type\": \"array\",\n \"description\": \"Names of properties that will be indexed for this object type in by HubSpot's product search.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"primaryDisplayProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"A unique name for this object. For internal use only.\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"associatedObjects\": {\n \"type\": \"array\",\n \"description\": \"Associations defined for this object type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Properties defined for this object type.\",\n \"items\": {\n \"required\": [\n \"fieldType\",\n \"label\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"optionSortStrategy\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property options will be sorted in the HubSpot UI.\",\n \"enum\": [\n \"DISPLAY_ORDER\",\n \"ALPHABETICAL\"\n ]\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"showCurrencySymbol\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property will display the currency symbol in the HubSpot UI.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"string\",\n \"number\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"bool\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property can be used in a HubSpot form.\"\n },\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the group this property belongs to.\"\n },\n \"referencedObjectType\": {\n \"type\": \"string\",\n \"description\": \"Defines the options this property will return, e.g. OWNER would return name of users on the portal.\"\n },\n \"textDisplayHint\": {\n \"type\": \"string\",\n \"description\": \"Controls how text properties are formatted in the HubSpot UI\",\n \"enum\": [\n \"unformatted_single_line\",\n \"multi_line\",\n \"email\",\n \"phone_number\",\n \"domain_name\",\n \"ip_address\",\n \"physical_address\",\n \"postal_code\"\n ]\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property name, which must be used when referencing the property from the API.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of available options for the property. This field is only required for enumerated properties.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"searchableInGlobalSearch\": {\n \"type\": \"boolean\",\n \"description\": \"Allow users to search for information entered to this field (limited to 3 properties)\"\n },\n \"numberDisplayHint\": {\n \"type\": \"string\",\n \"description\": \"Controls how numeric properties are formatted in the HubSpot UI\",\n \"enum\": [\n \"unformatted\",\n \"formatted\",\n \"currency\",\n \"percentage\",\n \"duration\",\n \"probability\"\n ]\n },\n \"hasUniqueValue\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property's value must be unique. Once set, this can't be changed.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\"\n }\n },\n \"description\": \"Defines a property to create.\",\n \"example\": {\n \"label\": \"My object property\",\n \"type\": \"enumeration\",\n \"fieldType\": \"select\",\n \"groupName\": \"my_object_information\",\n \"displayOrder\": 2,\n \"hasUniqueValue\": false,\n \"options\": [\n {\n \"label\": \"Option A\",\n \"description\": \"Choice number one\",\n \"value\": \"A\",\n \"displayOrder\": 1\n },\n {\n \"label\": \"Option B\",\n \"description\": \"Choice number two\",\n \"value\": \"B\",\n \"displayOrder\": 2\n }\n ]\n }\n }\n },\n \"labels\": {\n \"type\": \"object\",\n \"properties\": {\n \"plural\": {\n \"type\": \"string\",\n \"description\": \"The word for multiple objects. (There\\u2019s no way to change this later.)\"\n },\n \"singular\": {\n \"type\": \"string\",\n \"description\": \"The word for one object. (There\\u2019s no way to change this later.)\"\n }\n },\n \"description\": \"Singular and plural labels for the object. Used in CRM display.\",\n \"example\": {\n \"singular\": \"My object\",\n \"plural\": \"My objects\"\n }\n }\n },\n \"description\": \"Defines a new object type, its properties, and associations.\",\n \"example\": {\n \"name\": \"my_object\",\n \"labels\": {\n \"singular\": \"My object\",\n \"plural\": \"My objects\"\n },\n \"primaryDisplayProperty\": \"my_object_property\",\n \"requiredProperties\": [\n \"my_object_property\"\n ],\n \"properties\": [\n {\n \"name\": \"my_object_property\",\n \"label\": \"My object property\",\n \"isPrimaryDisplayLabel\": true\n }\n ],\n \"associatedObjects\": [\n \"CONTACT\"\n ],\n \"metaType\": \"PORTAL_SPECIFIC\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmPipeline.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmPipeline.json new file mode 100644 index 00000000..cad409d4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmPipeline.json @@ -0,0 +1,262 @@ +{ + "name": "CreateCrmPipeline", + "fully_qualified_name": "HubspotCrmApi.CreateCrmPipeline@0.1.0", + "description": "Create a new CRM pipeline in HubSpot.\n\nUse this tool to create a new pipeline in HubSpot CRM with given property values. It returns the entire pipeline object, including its unique ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "pipeline_object_type", + "required": true, + "description": "Specify the type of CRM object for the pipeline, such as 'deals' or 'tickets'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_details", + "required": true, + "description": "JSON object containing pipeline details such as display order, stages, and label to create a CRM pipeline in HubSpot.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "stages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "Pipeline stage inputs used to create the new or replacement pipeline." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/pipelines/{objectType}_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "pipeline_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "pipeline_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "stages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "Pipeline stage inputs used to create the new or replacement pipeline." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"stages\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"stages\": {\n \"type\": \"array\",\n \"description\": \"Pipeline stage inputs used to create the new or replacement pipeline.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A unique label used to organize pipelines in HubSpot's UI\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline's definition.\",\n \"example\": {\n \"label\": \"My replaced pipeline\",\n \"displayOrder\": 0,\n \"stages\": [\n {\n \"label\": \"In Progress\",\n \"displayOrder\": 0,\n \"metadata\": {\n \"ticketState\": \"OPEN\"\n }\n },\n {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmUser.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmUser.json new file mode 100644 index 00000000..c5fcd61c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateCrmUser.json @@ -0,0 +1,237 @@ +{ + "name": "CreateCrmUser", + "fully_qualified_name": "HubspotCrmApi.CreateCrmUser@0.1.0", + "description": "Create a new user in the CRM and retrieve their ID.\n\nUse this tool to create a new user in the HubSpot CRM system. The tool will return a detailed user object, including the newly assigned ID. This is useful for adding new users to your CRM database.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_properties", + "required": true, + "description": "A JSON object containing key-value pairs for setting properties of the new user. It can include user associations and specific property settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "user_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateDiscount.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateDiscount.json new file mode 100644 index 00000000..2c874783 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateDiscount.json @@ -0,0 +1,237 @@ +{ + "name": "CreateDiscount", + "fully_qualified_name": "HubspotCrmApi.CreateDiscount@0.1.0", + "description": "Creates a discount and returns its details.\n\nUse this tool to create a new discount with specified properties in HubSpot CRM. It returns the created discount object along with its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_properties", + "required": true, + "description": "JSON object containing key-value pairs for setting discount properties and associations, including types and association IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "discount_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFeeInCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFeeInCrm.json new file mode 100644 index 00000000..fc63db67 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFeeInCrm.json @@ -0,0 +1,237 @@ +{ + "name": "CreateFeeInCrm", + "fully_qualified_name": "HubspotCrmApi.CreateFeeInCrm@0.1.0", + "description": "Create a fee in the CRM and receive the object's details.\n\nCall this tool to add a new fee in the CRM system using specified properties. It returns the newly created fee object along with its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_properties", + "required": true, + "description": "JSON object containing key-value pairs for setting properties of the new fee. Also, include any associations with specified types and categories.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "fee_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFolderHubspotCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFolderHubspotCrm.json new file mode 100644 index 00000000..29ca64e4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateFolderHubspotCrm.json @@ -0,0 +1,144 @@ +{ + "name": "CreateFolderHubspotCrm", + "fully_qualified_name": "HubspotCrmApi.CreateFolderHubspotCrm@0.1.0", + "description": "Creates a folder in HubSpot CRM with specified details.\n\nUse this tool to create a new folder in HubSpot CRM by providing the necessary information for the folder you want to create.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "folder_name", + "required": true, + "description": "The name of the folder to be created in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the folder to be created." + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "parent_folder_id", + "required": false, + "description": "The ID of the folder where the new folder will be created. Defaults to root folder (ID: 0) if not specified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The folder this should be created in, if not specified will be created in the root folder 0." + }, + "inferrable": true, + "http_endpoint_parameter_name": "parentFolderId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/lists/folders_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/folders", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "parentFolderId", + "tool_parameter_name": "parent_folder_id", + "description": "The folder this should be created in, if not specified will be created in the root folder 0.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The folder this should be created in, if not specified will be created in the root folder 0." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "folder_name", + "description": "The name of the folder to be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the folder to be created." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"parentFolderId\": {\n \"type\": \"string\",\n \"description\": \"The folder this should be created in, if not specified will be created in the root folder 0.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the folder to be created.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTarget.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTarget.json new file mode 100644 index 00000000..49e52541 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTarget.json @@ -0,0 +1,237 @@ +{ + "name": "CreateGoalTarget", + "fully_qualified_name": "HubspotCrmApi.CreateGoalTarget@0.1.0", + "description": "Create a goal target in HubSpot CRM.\n\nUse this tool to create a new goal target in the HubSpot CRM system. It takes the properties for the goal target and returns a copy of the created object along with its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_properties", + "required": true, + "description": "A JSON object containing properties and associations for the new goal target. Include key-value pairs for properties and an array of associations with details like association category and type ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "goal_target_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTargetsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTargetsBatch.json new file mode 100644 index 00000000..b36f247a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateGoalTargetsBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreateGoalTargetsBatch", + "fully_qualified_name": "HubspotCrmApi.CreateGoalTargetsBatch@0.1.0", + "description": "Batch create multiple goal targets in HubSpot CRM.\n\nUse this tool to create multiple goal targets at once in HubSpot CRM. It is suited for managing and setting up several targets simultaneously, aiding in efficient CRM organization.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_targets_data", + "required": true, + "description": "A JSON array containing multiple goal target objects. Each target object must include details such as associations, objectWriteTraceId, and properties. This enables the creation of multiple goal targets within HubSpot CRM in one operation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "goal_targets_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCall.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCall.json new file mode 100644 index 00000000..7ebbf82a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCall.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotCall", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotCall@0.1.0", + "description": "Create a call in HubSpot with specified properties.\n\nUse this tool to create a call in HubSpot CRM with specified properties. It returns the newly created call details, including its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "call_properties", + "required": true, + "description": "JSON object specifying call properties and associations. Includes key-value pairs for call settings and association details like types and IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "call_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCommunication.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCommunication.json new file mode 100644 index 00000000..d0aa2e86 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCommunication.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotCommunication", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotCommunication@0.1.0", + "description": "Create a new communication entry in HubSpot CRM.\n\nThis tool creates a communication in HubSpot CRM with specified properties and returns the created object, including its ID. Use this when you need to log or track communications within the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "communication_details", + "required": true, + "description": "JSON object containing associations and properties for creating the communication. 'associations' involves details on related entities, 'properties' includes key-value pairs for setting the new communication's attributes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "communication_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotContact.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotContact.json new file mode 100644 index 00000000..f44a8152 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotContact.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotContact", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotContact@0.1.0", + "description": "Create a contact in HubSpot CRM and retrieve its details.\n\nUse this tool to add a new contact to HubSpot CRM by specifying the desired properties. It returns a copy of the contact, including its unique ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_properties", + "required": true, + "description": "A JSON object containing properties for the new contact, including associations and other relevant data.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "contact_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"example\": {\n \"properties\": {\n \"email\": \"bcooper@biglytics.net\",\n \"phone\": \"(877) 929-0687\",\n \"company\": \"Biglytics\",\n \"website\": \"biglytics.net\",\n \"lastname\": \"Cooper\",\n \"firstname\": \"Bryan\"\n },\n \"associations\": []\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCourse.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCourse.json new file mode 100644 index 00000000..88f1d374 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCourse.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotCourse", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotCourse@0.1.0", + "description": "Create a course in HubSpot CRM and return its details.\n\nUse this tool to create a new course in HubSpot CRM with specified properties. It returns the course details, including the generated ID, upon successful creation.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "course_properties", + "required": true, + "description": "JSON object containing key-value pairs for setting properties and associations for the new course. Includes fields like `properties` for course-specific attributes and `associations` for related entities.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "course_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCrmProperty.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCrmProperty.json new file mode 100644 index 00000000..f904f635 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotCrmProperty.json @@ -0,0 +1,536 @@ +{ + "name": "CreateHubspotCrmProperty", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotCrmProperty@0.1.0", + "description": "Create a new property for a specified object type in HubSpot CRM.\n\nThis tool creates and returns a new property for the specified object type in HubSpot CRM. It should be used when you need to add a custom property to an object such as a contact, company, or deal in HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the object type to which the new property will be added, such as contact, company, or deal.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "new_property_request", + "required": true, + "description": "A JSON object defining attributes for the new HubSpot CRM property, including type, label, options, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property. This field is required for enumerated properties." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "externalOptions": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/properties/{objectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "new_property_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "referencedObjectType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property name, which must be used when referencing the property via the API." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property. This field is required for enumerated properties." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "hasUniqueValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property's value must be unique. Once set, this can't be changed." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "externalOptions": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"fieldType\",\n \"groupName\",\n \"label\",\n \"name\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"bool\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"number\",\n \"phone_number\",\n \"string\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property can be used in a HubSpot form.\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"enum\": [\n \"non_sensitive\",\n \"sensitive\",\n \"highly_sensitive\"\n ]\n },\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property group the property belongs to.\"\n },\n \"referencedObjectType\": {\n \"type\": \"string\",\n \"description\": \"Should be set to 'OWNER' when 'externalOptions' is true, which causes the property to dynamically pull option values from the current HubSpot users.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property name, which must be used when referencing the property via the API.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of valid options for the property. This field is required for enumerated properties.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"calculationFormula\": {\n \"type\": \"string\",\n \"description\": \"Represents a formula that is used to compute a calculated property.\"\n },\n \"hasUniqueValue\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property's value must be unique. Once set, this can't be changed.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\",\n \"enum\": [\n \"booleancheckbox\",\n \"calculation_equation\",\n \"checkbox\",\n \"date\",\n \"file\",\n \"html\",\n \"number\",\n \"phonenumber\",\n \"radio\",\n \"select\",\n \"text\",\n \"textarea\"\n ]\n },\n \"externalOptions\": {\n \"type\": \"boolean\",\n \"description\": \"Applicable only for 'enumeration' type properties. Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false.\"\n }\n },\n \"example\": {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotDeal.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotDeal.json new file mode 100644 index 00000000..17f06641 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotDeal.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotDeal", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotDeal@0.1.0", + "description": "Create a new deal in HubSpot CRM.\n\nUse this tool to create a new deal in HubSpot CRM by specifying the necessary properties. It returns the created deal object along with its unique ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_properties", + "required": true, + "description": "JSON object containing key-value pairs for setting properties for the new deal, and optionally, associations with other objects.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deal_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotEmail.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotEmail.json new file mode 100644 index 00000000..b5ffa178 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotEmail.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotEmail", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotEmail@0.1.0", + "description": "Create an email in HubSpot CRM and retrieve its details.\n\nUse this tool to create a new email in HubSpot CRM by specifying certain properties. It returns the created email object along with its ID, facilitating the organization and tracking of email records within the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_properties", + "required": true, + "description": "JSON object containing key-value pairs for email properties, including associations and other attributes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotInvoice.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotInvoice.json new file mode 100644 index 00000000..bfa20616 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotInvoice.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotInvoice", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotInvoice@0.1.0", + "description": "Create an invoice in HubSpot CRM and retrieve its details.\n\nThis tool creates a new invoice in HubSpot CRM using the provided properties and returns the created invoice's details, including its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_properties", + "required": true, + "description": "Key-value pairs for setting properties for the new invoice, including associations to other objects.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "invoice_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotLineItem.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotLineItem.json new file mode 100644 index 00000000..a1048434 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotLineItem.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotLineItem", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotLineItem@0.1.0", + "description": "Create a new line item in HubSpot CRM.\n\nThis tool creates a line item in HubSpot CRM with specified properties and returns the complete object, including its ID. Use this when you need to add a line item to HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_item_details", + "required": true, + "description": "JSON object containing key-value pairs for properties and associations to define a new line item in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "line_item_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotListing.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotListing.json new file mode 100644 index 00000000..d86cf2d6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotListing.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotListing", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotListing@0.1.0", + "description": "Create a HubSpot CRM listing and get the object details.\n\nUse this tool to create a listing in HubSpot CRM with specified properties. It returns the newly created object's details, including its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "listing_properties", + "required": true, + "description": "JSON object containing properties for the new listing and optional associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "listing_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMeeting.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMeeting.json new file mode 100644 index 00000000..f21ac8bd --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMeeting.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotMeeting", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotMeeting@0.1.0", + "description": "Create a meeting in HubSpot and get its details.\n\nThis tool is used to create a meeting in HubSpot CRM with specific properties. It returns the details of the created meeting, including the unique ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_properties", + "required": true, + "description": "JSON object containing key-value pairs for setting properties of the meeting, including associations and specific properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "meeting_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMessagesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMessagesBatch.json new file mode 100644 index 00000000..ee04287c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotMessagesBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreateHubspotMessagesBatch", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotMessagesBatch@0.1.0", + "description": "Create a batch of messages in HubSpot CRM.\n\nUse this tool to create multiple messages in HubSpot CRM simultaneously. Ideal for handling bulk message creation with optional properties and associations with other CRM records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "messages_batch_input", + "required": true, + "description": "JSON object containing the `inputs` array for message properties and associations. Each element should specify message details and CRM associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "messages_batch_input", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotObjectsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotObjectsBatch.json new file mode 100644 index 00000000..981e4a15 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotObjectsBatch.json @@ -0,0 +1,369 @@ +{ + "name": "CreateHubspotObjectsBatch", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotObjectsBatch@0.1.0", + "description": "Create a batch of objects in HubSpot CRM.\n\nUse this tool to create multiple objects at once in HubSpot CRM. Suitable for handling bulk operations where several objects need to be created simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_object_type", + "required": true, + "description": "Specifies the type of object to create in HubSpot, such as 'contacts', 'deals', or 'companies'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_batch_creation_data", + "required": true, + "description": "A JSON object containing details of objects to create, including 'properties', 'associations', and 'objectWriteTraceId'. Each object can include associations with categories and ID types, and should specify trace IDs for tracking.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "hubspot_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "object_batch_creation_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotOrder.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotOrder.json new file mode 100644 index 00000000..83d8ddb7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotOrder.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotOrder", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotOrder@0.1.0", + "description": "Create a new order in HubSpot CRM with specified properties.\n\nUse this tool to create a new order in the HubSpot CRM system. It returns the details and ID of the created order, allowing further tracking and management.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_details", + "required": true, + "description": "JSON object containing associations and properties for the new order. Includes key-value pairs for details like customer ID and association types.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "order_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotQuote.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotQuote.json new file mode 100644 index 00000000..656c632c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotQuote.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotQuote", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotQuote@0.1.0", + "description": "Create a new quote in HubSpot CRM.\n\nUse this tool to create a new quote in HubSpot CRM with specified properties. It returns the created quote, including its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_details", + "required": true, + "description": "A JSON object containing details for the new quote, including properties and associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "quote_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotTax.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotTax.json new file mode 100644 index 00000000..c57b647c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateHubspotTax.json @@ -0,0 +1,237 @@ +{ + "name": "CreateHubspotTax", + "fully_qualified_name": "HubspotCrmApi.CreateHubspotTax@0.1.0", + "description": "Create a tax in HubSpot CRM and retrieve its details.\n\nThis tool creates a tax with specified properties in HubSpot CRM and returns a detailed object including the newly assigned ID. Use this for adding new tax records to your CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_creation_details", + "required": true, + "description": "JSON object with properties for the new tax, including any associations. Include key-value pairs to set properties, and optionally add associations with IDs and types.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "tax_creation_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadHubspot.json new file mode 100644 index 00000000..e1a3bc55 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadHubspot.json @@ -0,0 +1,237 @@ +{ + "name": "CreateLeadHubspot", + "fully_qualified_name": "HubspotCrmApi.CreateLeadHubspot@0.1.0", + "description": "Create a new lead in HubSpot CRM.\n\nUse this tool to create a new lead in HubSpot CRM by providing the necessary properties. It returns a copy of the lead object, including the ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_properties", + "required": true, + "description": "A JSON object containing key-value pairs for setting properties of the new lead, including associations and other attributes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/leads_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "lead_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadsBatch.json new file mode 100644 index 00000000..3345e8a8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLeadsBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreateLeadsBatch", + "fully_qualified_name": "HubspotCrmApi.CreateLeadsBatch@0.1.0", + "description": "Create a batch of new leads in HubSpot CRM.\n\nUse this tool to add multiple new leads to your HubSpot CRM account in one operation. Ideal for onboarding new leads efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_batch_data", + "required": true, + "description": "JSON object containing the data for each lead. Include associations, trace ID, and properties for each lead entry.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "lead_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLineItemsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLineItemsBatch.json new file mode 100644 index 00000000..a92626cc --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateLineItemsBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreateLineItemsBatch", + "fully_qualified_name": "HubspotCrmApi.CreateLineItemsBatch@0.1.0", + "description": "Create a batch of line items in HubSpot CRM.\n\nUse this tool to create multiple line items at once in HubSpot CRM. Ideal for bulk operations where several line items need to be added simultaneously to the system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_items_batch_data", + "required": true, + "description": "JSON data for creating multiple line items. Includes properties and associations for each item.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "line_items_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleDeals.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleDeals.json new file mode 100644 index 00000000..b608ca2e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleDeals.json @@ -0,0 +1,271 @@ +{ + "name": "CreateMultipleDeals", + "fully_qualified_name": "HubspotCrmApi.CreateMultipleDeals@0.1.0", + "description": "Create multiple deals in HubSpot CRM in one request.\n\nUse this tool to batch create multiple deals in HubSpot CRM efficiently. It should be called when you need to add several deals at once, reducing the number of individual requests.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_creation_requests", + "required": true, + "description": "A JSON array of deal objects, each containing properties, associations, and an optional write trace ID for creating multiple deals in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deal_creation_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleListings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleListings.json new file mode 100644 index 00000000..7952f4b5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateMultipleListings.json @@ -0,0 +1,271 @@ +{ + "name": "CreateMultipleListings", + "fully_qualified_name": "HubspotCrmApi.CreateMultipleListings@0.1.0", + "description": "Create multiple listings in a single request.\n\nUse this tool to add several listings to the CRM in one operation. Ideal for bulk uploads or extensive data entry tasks.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "listings_data", + "required": true, + "description": "JSON array containing data for each listing to be created. Each entry should include details like 'associations', 'objectWriteTraceId', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "listings_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateNoteInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateNoteInHubspot.json new file mode 100644 index 00000000..b4c692d1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateNoteInHubspot.json @@ -0,0 +1,237 @@ +{ + "name": "CreateNoteInHubspot", + "fully_qualified_name": "HubspotCrmApi.CreateNoteInHubspot@0.1.0", + "description": "Create a note in HubSpot CRM and return its details.\n\nUse this tool to create a note in HubSpot CRM with specified properties. It returns a copy of the created note object, including its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "note_creation_details", + "required": true, + "description": "JSON object containing key-value pairs for note properties and associations. Includes association details like category and type.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "note_creation_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateObjectAssociation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateObjectAssociation.json new file mode 100644 index 00000000..b03dead8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateObjectAssociation.json @@ -0,0 +1,306 @@ +{ + "name": "CreateObjectAssociation", + "fully_qualified_name": "HubspotCrmApi.CreateObjectAssociation@0.1.0", + "description": "Create an association between two CRM objects in HubSpot.\n\nUse this tool to link two objects in HubSpot CRM by specifying their types, IDs, and the type of association. This is useful for connecting related records, such as associating a contact with a specific company or deal.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_object_type", + "required": true, + "description": "Type of the source object. Specify the CRM object type, such as 'contact', 'company', or 'deal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "source_object_id", + "required": true, + "description": "The ID of the primary object to associate in HubSpot. This should be a valid string representing the CRM object's unique identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of the target object to associate. Examples include 'contact', 'company', or 'deal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "target_object_id", + "required": true, + "description": "The ID of the target object to associate with. This is the object you want to link to the main object in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectId" + }, + { + "name": "association_type", + "required": true, + "description": "Specifies the type of association to create between the objects, such as 'contact_to_company'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "source_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "source_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectId", + "tool_parameter_name": "target_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationType", + "tool_parameter_name": "association_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateBatchRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateBatchRecords.json new file mode 100644 index 00000000..ef3cae24 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateBatchRecords.json @@ -0,0 +1,193 @@ +{ + "name": "CreateOrUpdateBatchRecords", + "fully_qualified_name": "HubspotCrmApi.CreateOrUpdateBatchRecords@0.1.0", + "description": "Create or update CRM records in batches.\n\nUse this tool to create or update records in the CRM identified by a unique property value. It allows handling multiple records in a single batch operation, specified by the `idProperty`.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_records", + "required": true, + "description": "A JSON array containing objects with unique identifiers (idProperty, id) and their properties. Used for batch creation or update in the CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_records", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateCompanies.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateCompanies.json new file mode 100644 index 00000000..ddb5f305 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateCompanies.json @@ -0,0 +1,193 @@ +{ + "name": "CreateOrUpdateCompanies", + "fully_qualified_name": "HubspotCrmApi.CreateOrUpdateCompanies@0.1.0", + "description": "Create or update companies in HubSpot CRM using a unique identifier.\n\nThis tool creates or updates companies in the HubSpot CRM based on a unique identifier property. It should be called when you need to batch upsert company records identified by a unique property.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_data_batch", + "required": true, + "description": "A JSON array of objects, each containing 'idProperty', 'objectWriteTraceId', 'id', and 'properties', to specify unique company identifiers and their details for upserting.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "company_data_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotEmails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotEmails.json new file mode 100644 index 00000000..791ea940 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotEmails.json @@ -0,0 +1,193 @@ +{ + "name": "CreateOrUpdateHubspotEmails", + "fully_qualified_name": "HubspotCrmApi.CreateOrUpdateHubspotEmails@0.1.0", + "description": "Create or update HubSpot email records in batch.\n\nThis tool allows you to create or update email records in HubSpot's CRM by using a unique property value to identify the records. It's useful when you need to manage email data efficiently by ensuring existing records are updated and new ones are created where needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_records_data", + "required": true, + "description": "JSON array containing email records, each with `idProperty`, `objectWriteTraceId`, `id`, and `properties` for batch upsert.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotRecords.json new file mode 100644 index 00000000..08d57a7c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateHubspotRecords.json @@ -0,0 +1,193 @@ +{ + "name": "CreateOrUpdateHubspotRecords", + "fully_qualified_name": "HubspotCrmApi.CreateOrUpdateHubspotRecords@0.1.0", + "description": "Create or update HubSpot CRM records using unique properties.\n\nThis tool is used to create or update HubSpot CRM records by leveraging unique property values for identification. It ensures that records are upserted based on the provided unique identifier.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_records_data", + "required": true, + "description": "JSON array of objects containing 'idProperty', 'objectWriteTraceId', 'id', and 'properties'. Each object represents a record to create or update in HubSpot CRM. 'idProperty' is the unique identifier.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "hubspot_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateQuotes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateQuotes.json new file mode 100644 index 00000000..ddbb6ed5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateQuotes.json @@ -0,0 +1,193 @@ +{ + "name": "CreateOrUpdateQuotes", + "fully_qualified_name": "HubspotCrmApi.CreateOrUpdateQuotes@0.1.0", + "description": "Create or update quote records in HubSpot CRM.\n\nThis tool is used to create or update quote records in HubSpot CRM based on a unique property value specified by `idProperty`. Use it when you need to ensure quotes are updated or added to the CRM system efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_records_list", + "required": true, + "description": "A list of quote objects with unique identifiers and properties for batch creation or update. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "quote_records_list", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateTaxRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateTaxRecords.json new file mode 100644 index 00000000..c3dd4f4e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateOrUpdateTaxRecords.json @@ -0,0 +1,193 @@ +{ + "name": "CreateOrUpdateTaxRecords", + "fully_qualified_name": "HubspotCrmApi.CreateOrUpdateTaxRecords@0.1.0", + "description": "Create or update tax records based on unique properties.\n\nThis tool creates or updates tax records in HubSpot CRM by using unique property values specified by the `idProperty` parameter. It should be called when you need to ensure tax records are correctly up-to-date by leveraging existing unique identifiers.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_records_payload", + "required": true, + "description": "JSON object containing an array of tax record objects to create or update. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties` to specify the unique identifiers and details of the record.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "tax_records_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePipelineStage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePipelineStage.json new file mode 100644 index 00000000..316183b6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePipelineStage.json @@ -0,0 +1,245 @@ +{ + "name": "CreatePipelineStage", + "fully_qualified_name": "HubspotCrmApi.CreatePipelineStage@0.1.0", + "description": "Create a stage in a specified pipeline.\n\nThis tool creates a new stage within a specified pipeline in the HubSpot CRM. Use it when you need to add a new stage to an existing pipeline, specifying the object type and pipeline ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the CRM object type, such as deals or tickets, for the pipeline.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique identifier of the pipeline where the new stage will be created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "pipeline_stage_details", + "required": true, + "description": "JSON object with details for the pipeline stage, including metadata, display order, and label.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "pipeline_stage_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailBatch.json new file mode 100644 index 00000000..661ded08 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreatePostalMailBatch", + "fully_qualified_name": "HubspotCrmApi.CreatePostalMailBatch@0.1.0", + "description": "Create a batch of postal mail objects in HubSpot CRM.\n\nUse this tool to create multiple postal mail records within the HubSpot CRM system. Ideal for handling bulk postal mail operations efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_batch_data", + "required": true, + "description": "A JSON object containing an array of postal mail entries with details like associations, properties, and trace IDs for batch creation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailObject.json new file mode 100644 index 00000000..de083fb4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePostalMailObject.json @@ -0,0 +1,237 @@ +{ + "name": "CreatePostalMailObject", + "fully_qualified_name": "HubspotCrmApi.CreatePostalMailObject@0.1.0", + "description": "Create a postal mail object in HubSpot CRM.\n\nThis tool is used to create a postal mail object in the HubSpot CRM with the provided properties. It returns a copy of the created object, including its unique identifier. Use this tool to record postal mail interactions in your CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_properties", + "required": true, + "description": "JSON object containing key-value pairs for the properties of the new postal mail object and any associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateProductInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateProductInHubspot.json new file mode 100644 index 00000000..4e0ec4c7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateProductInHubspot.json @@ -0,0 +1,237 @@ +{ + "name": "CreateProductInHubspot", + "fully_qualified_name": "HubspotCrmApi.CreateProductInHubspot@0.1.0", + "description": "Create a new product in HubSpot CRM.\n\nUse this tool to create a product in HubSpot CRM with specified properties. It returns the created product details, including the ID, which can be used for further referencing or operations.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_properties", + "required": true, + "description": "A JSON object containing key-value pairs for the product's properties and any associations, defining attributes and connections.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "product_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePropertyGroup.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePropertyGroup.json new file mode 100644 index 00000000..bec01099 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreatePropertyGroup.json @@ -0,0 +1,228 @@ +{ + "name": "CreatePropertyGroup", + "fully_qualified_name": "HubspotCrmApi.CreatePropertyGroup@0.1.0", + "description": "Create a new property group in HubSpot CRM.\n\nThis tool creates and returns a new property group for a specified object type in HubSpot CRM. Use it when you need to organize CRM properties into groups.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the CRM object type for the property group (e.g., contacts, companies).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "internal_property_group_name", + "required": true, + "description": "The unique name used internally to reference the property group via the API.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "property_group_label", + "required": true, + "description": "A human-readable label for the property group, displayed in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label that will be shown in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "label" + }, + { + "name": "property_group_display_order", + "required": false, + "description": "Defines the display order of the property group, with lowest positive integers displayed first. Use -1 to display after positive values.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values." + }, + "inferrable": true, + "http_endpoint_parameter_name": "displayOrder" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/groups'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/groups", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "internal_property_group_name", + "description": "The internal property group name, which must be used when referencing the property group via the API.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal property group name, which must be used when referencing the property group via the API." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "displayOrder", + "tool_parameter_name": "property_group_display_order", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "label", + "tool_parameter_name": "property_group_label", + "description": "A human-readable label that will be shown in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label that will be shown in HubSpot." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"label\",\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The internal property group name, which must be used when referencing the property group via the API.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label that will be shown in HubSpot.\"\n }\n },\n \"example\": {\n \"displayOrder\": -1,\n \"label\": \"My Property Group\",\n \"name\": \"mypropertygroup\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateServiceRecord.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateServiceRecord.json new file mode 100644 index 00000000..9693681e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateServiceRecord.json @@ -0,0 +1,237 @@ +{ + "name": "CreateServiceRecord", + "fully_qualified_name": "HubspotCrmApi.CreateServiceRecord@0.1.0", + "description": "Create a service record in HubSpot CRM.\n\nThis tool creates a new service object in HubSpot CRM with the specified properties and returns the created object, including its ID. It's useful for adding new service records to the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "service_creation_data", + "required": true, + "description": "A JSON object with key-value pairs for service properties and associations. Include 'properties' for the service details, and 'associations' for related objects.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "service_creation_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateSubscription.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateSubscription.json new file mode 100644 index 00000000..1e3511f6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateSubscription.json @@ -0,0 +1,302 @@ +{ + "name": "CreateSubscription", + "fully_qualified_name": "HubspotCrmApi.CreateSubscription@0.1.0", + "description": "Create a new subscription in HubSpot CRM.\n\nThis tool creates a subscription in HubSpot CRM using specified properties and returns a copy of the object with its ID included. Use it to add new subscriptions to the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_details", + "required": true, + "description": "JSON object containing key-value pairs for subscription properties and associations. Use it to define the subscription attributes and related entities.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "subscription_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaskInCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaskInCrm.json new file mode 100644 index 00000000..3424709e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaskInCrm.json @@ -0,0 +1,237 @@ +{ + "name": "CreateTaskInCrm", + "fully_qualified_name": "HubspotCrmApi.CreateTaskInCrm@0.1.0", + "description": "Create a task in HubSpot CRM and return task details.\n\nThis tool creates a task in HubSpot CRM with specified properties and returns the task details, including the ID. It should be called when you need to add a new task to the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_properties", + "required": true, + "description": "A JSON object containing key-value pairs for the task properties, including associations. The 'associations' key should list entities and their types related to the task.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "task_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaxBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaxBatch.json new file mode 100644 index 00000000..bacd36a9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTaxBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreateTaxBatch", + "fully_qualified_name": "HubspotCrmApi.CreateTaxBatch@0.1.0", + "description": "Create a batch of taxes in HubSpot CRM.\n\nUse this tool to create multiple tax records at once in HubSpot CRM. Ideal for situations where bulk tax data entry is required.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_batch_data", + "required": true, + "description": "JSON structured data for creating multiple tax records. It includes tax properties, associations, and an optional object write trace ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/create_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "tax_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTicket.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTicket.json new file mode 100644 index 00000000..4fa20766 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateTicket.json @@ -0,0 +1,237 @@ +{ + "name": "CreateTicket", + "fully_qualified_name": "HubspotCrmApi.CreateTicket@0.1.0", + "description": "Create a support ticket in HubSpot CRM.\n\nUse this tool to create a new support ticket with specified properties in HubSpot CRM and receive a copy of the ticket object along with its ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_properties", + "required": true, + "description": "JSON object containing key-value pairs for setting properties for the new ticket, including optional associations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs for setting properties for the new object.\"\n }\n },\n \"description\": \"Is the input object used to create a new CRM object, containing the properties to be set and optional associations to link the new record with other CRM objects.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateUsersBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateUsersBatch.json new file mode 100644 index 00000000..007607a7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/CreateUsersBatch.json @@ -0,0 +1,271 @@ +{ + "name": "CreateUsersBatch", + "fully_qualified_name": "HubspotCrmApi.CreateUsersBatch@0.1.0", + "description": "Create a batch of users in the CRM system.\n\nUse this tool to create multiple users at once in the HubSpot CRM. It should be called when there is a need to add multiple users efficiently through a single command.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "users_batch_request", + "required": true, + "description": "A JSON object containing an array of user objects to be created. Each user must include details such as associations, properties, and an optional objectWriteTraceId. Use for bulk user creation in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "users_batch_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associations": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "types": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "associationCategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "HUBSPOT_DEFINED", + "USER_DEFINED", + "INTEGRATOR_DEFINED" + ], + "properties": null, + "inner_properties": null, + "description": "The category of the association, such as \"HUBSPOT_DEFINED\"." + }, + "associationTypeId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID representing the specific type of association." + } + }, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associations\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associations\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"to\",\n \"types\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"types\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"associationCategory\",\n \"associationTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"associationCategory\": {\n \"type\": \"string\",\n \"description\": \"The category of the association, such as \\\"HUBSPOT_DEFINED\\\".\",\n \"enum\": [\n \"HUBSPOT_DEFINED\",\n \"USER_DEFINED\",\n \"INTEGRATOR_DEFINED\"\n ]\n },\n \"associationTypeId\": {\n \"type\": \"integer\",\n \"description\": \"The ID representing the specific type of association.\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Defines the type, direction, and details of the relationship between two CRM objects.\"\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteBatchMessages.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteBatchMessages.json new file mode 100644 index 00000000..86ae1136 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteBatchMessages.json @@ -0,0 +1,145 @@ +{ + "name": "DeleteBatchMessages", + "fully_qualified_name": "HubspotCrmApi.DeleteBatchMessages@0.1.0", + "description": "Delete a batch of messages by ID with restoration option.\n\nDelete multiple messages by their IDs. Deleted messages can be restored within 90 days.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "message_ids_to_delete", + "required": true, + "description": "A JSON array of message IDs to delete. Each ID must be a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "message_ids_to_delete", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCallTranscript.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCallTranscript.json new file mode 100644 index 00000000..069772a8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCallTranscript.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteCallTranscript", + "fully_qualified_name": "HubspotCrmApi.DeleteCallTranscript@0.1.0", + "description": "Delete a call transcript by transcript ID.\n\nRemoves a call transcript identified by transcript ID from the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "transcript_id", + "required": true, + "description": "The unique identifier for the call transcript you want to delete from the HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "transcriptId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/extensions/calling/transcripts/{transcriptId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.extensions_calling_transcripts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/extensions/calling/transcripts/{transcriptId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "transcriptId", + "tool_parameter_name": "transcript_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCommercePayment.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCommercePayment.json new file mode 100644 index 00000000..24df4c93 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCommercePayment.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteCommercePayment", + "fully_qualified_name": "HubspotCrmApi.DeleteCommercePayment@0.1.0", + "description": "Delete a commerce payment from the CRM system.\n\nUse this tool to move a specified commerce payment to the recycling bin by providing the payment ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_id", + "required": true, + "description": "The unique identifier for the commerce payment to be moved to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "commercePaymentId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/commerce_payments/{commercePaymentId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "commercePaymentId", + "tool_parameter_name": "commerce_payment_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompaniesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompaniesBatch.json new file mode 100644 index 00000000..af97ff7f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompaniesBatch.json @@ -0,0 +1,145 @@ +{ + "name": "DeleteCompaniesBatch", + "fully_qualified_name": "HubspotCrmApi.DeleteCompaniesBatch@0.1.0", + "description": "Delete a batch of companies by ID in HubSpot CRM.\n\nThis tool deletes a batch of companies in HubSpot CRM using their IDs. Deleted companies can be restored within 90 days.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "companies_batch_ids", + "required": true, + "description": "JSON array of company IDs to delete. Each entry should include an 'id' key with the company's ID as a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "companies_batch_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompany.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompany.json new file mode 100644 index 00000000..c18ee48d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCompany.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteCompany", + "fully_qualified_name": "HubspotCrmApi.DeleteCompany@0.1.0", + "description": "Delete a company by ID in HubSpot CRM.\n\nUse this tool to delete a company by its ID in HubSpot CRM. Deleted companies can be restored within 90 days if needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_id", + "required": true, + "description": "The unique identifier of the company to be deleted in HubSpot CRM. This ID is required to specify the company.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "companyId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/companies/{companyId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/{companyId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "companyId", + "tool_parameter_name": "company_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteContact.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteContact.json new file mode 100644 index 00000000..02665492 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteContact.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteContact", + "fully_qualified_name": "HubspotCrmApi.DeleteContact@0.1.0", + "description": "Delete a contact and move it to the recycling bin.\n\nUse this tool to delete a contact in HubSpot CRM, identified by `contactId`, moving it to the recycling bin.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id", + "required": true, + "description": "The unique identifier of the contact to be deleted and moved to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/contacts/{contactId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/{contactId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "contactId", + "tool_parameter_name": "contact_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCourse.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCourse.json new file mode 100644 index 00000000..7cc848ec --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCourse.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteCourse", + "fully_qualified_name": "HubspotCrmApi.DeleteCourse@0.1.0", + "description": "Delete a course by moving it to the recycling bin.\n\nThis tool deletes a specific course in the CRM by moving it to the recycling bin, identified by the provided `courseId`. Use this when you need to remove a course from the CRM records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "course_id", + "required": true, + "description": "The unique identifier for the course to be deleted. This identifier is used to locate the specific course in the CRM system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "courseId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/0-410/{courseId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/{courseId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "courseId", + "tool_parameter_name": "course_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmAssociation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmAssociation.json new file mode 100644 index 00000000..7922696a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmAssociation.json @@ -0,0 +1,142 @@ +{ + "name": "DeleteCrmAssociation", + "fully_qualified_name": "HubspotCrmApi.DeleteCrmAssociation@0.1.0", + "description": "Remove an association between CRM object schemas.\n\nThis tool is used to delete an association between specified CRM object schemas in HubSpot. It should be called when there is a need to remove or archive a link between two object types.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "schema_object_type", + "required": true, + "description": "The fully qualified name or object type ID of your schema to identify which CRM object to target.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "association_id", + "required": true, + "description": "Unique ID of the association to be removed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the association to remove." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationIdentifier" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}_archiveAssociation'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.custom.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "schema_object_type", + "description": "Fully qualified name or object type ID of your schema.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationIdentifier", + "tool_parameter_name": "association_id", + "description": "Unique ID of the association to remove.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique ID of the association to remove." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmFolder.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmFolder.json new file mode 100644 index 00000000..cf6315a9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmFolder.json @@ -0,0 +1,111 @@ +{ + "name": "DeleteCrmFolder", + "fully_qualified_name": "HubspotCrmApi.DeleteCrmFolder@0.1.0", + "description": "Deletes a specified CRM folder by ID.\n\nUse this tool to delete a folder in HubSpot CRM by providing the folder ID. It should be called when a specific folder needs to be permanently removed from the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "folder_id_to_delete", + "required": true, + "description": "The ID of the folder to be deleted in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to delete" + }, + "inferrable": true, + "http_endpoint_parameter_name": "folderId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/lists/folders/{folderId}_remove'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/folders/{folderId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "folderId", + "tool_parameter_name": "folder_id_to_delete", + "description": "The ID of the folder to delete", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to delete" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObject.json new file mode 100644 index 00000000..31fd4294 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObject.json @@ -0,0 +1,207 @@ +{ + "name": "DeleteCrmObject", + "fully_qualified_name": "HubspotCrmApi.DeleteCrmObject@0.1.0", + "description": "Delete a CRM object and move it to the recycling bin.\n\nUse this tool to delete an object in HubSpot CRM by specifying the object type and ID. The object will be moved to the recycling bin.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object to delete, such as 'contact', 'deal', or 'company'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "crm_object_id", + "required": true, + "description": "The unique identifier for the CRM object to be deleted. This ID specifies which object will be moved to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/objects/v3/{objectType}/{objectId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "crm_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObjectSchema.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObjectSchema.json new file mode 100644 index 00000000..0917813a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteCrmObjectSchema.json @@ -0,0 +1,142 @@ +{ + "name": "DeleteCrmObjectSchema", + "fully_qualified_name": "HubspotCrmApi.DeleteCrmObjectSchema@0.1.0", + "description": "Delete a CRM object schema in HubSpot.\n\nThis tool deletes a specified CRM object schema in HubSpot. Use it when you need to remove an existing schema, ensuring it's no longer accessible or in use.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_identifier", + "required": true, + "description": "The fully qualified name or object type ID of the schema to delete.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to True to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm-object-schemas/v3/schemas/{objectType}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.custom.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type_identifier", + "description": "Fully qualified name or object type ID of your schema.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteDiscount.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteDiscount.json new file mode 100644 index 00000000..eed090f3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteDiscount.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteDiscount", + "fully_qualified_name": "HubspotCrmApi.DeleteDiscount@0.1.0", + "description": "Delete a discount and move it to the recycling bin.\n\nUse this tool to delete a discount object in HubSpot CRM by moving it to the recycling bin. Call it when you need to remove discounts identified by a specific discount ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_identifier", + "required": true, + "description": "The unique identifier of the discount object to delete and move to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "discountId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/discounts/{discountId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/{discountId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "discountId", + "tool_parameter_name": "discount_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteEmail.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteEmail.json new file mode 100644 index 00000000..ab764bd6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteEmail.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteEmail", + "fully_qualified_name": "HubspotCrmApi.DeleteEmail@0.1.0", + "description": "Move an email to the recycling bin using its ID.\n\nThis tool moves an email identified by `emailId` to the recycling bin in HubSpot CRM. It should be used when an email needs to be archived or deleted from active view.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier of the email to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/emails/{emailId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/{emailId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteFeeObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteFeeObject.json new file mode 100644 index 00000000..f977f285 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteFeeObject.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteFeeObject", + "fully_qualified_name": "HubspotCrmApi.DeleteFeeObject@0.1.0", + "description": "Move a fee object to the recycling bin using its fee ID.\n\nCall this tool to delete a fee object in HubSpot CRM. Useful for removing unwanted or outdated fee records by providing the specific fee ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_id_to_delete", + "required": true, + "description": "The unique identifier of the fee object to be deleted in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "feeId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/fees/{feeId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/{feeId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "feeId", + "tool_parameter_name": "fee_id_to_delete", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteGoalTarget.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteGoalTarget.json new file mode 100644 index 00000000..58c274d3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteGoalTarget.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteGoalTarget", + "fully_qualified_name": "HubspotCrmApi.DeleteGoalTarget@0.1.0", + "description": "Deletes a goal target by its ID to the recycling bin.\n\nUse this tool to delete a specific goal target by providing its unique ID. This action will move the target to the recycling bin, allowing for potential recovery.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_id", + "required": true, + "description": "The unique identifier for the goal target to be deleted. Required to specify which target to move to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "goalTargetId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/goal_targets/{goalTargetId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "goalTargetId", + "tool_parameter_name": "goal_target_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteHubspotTicketsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteHubspotTicketsBatch.json new file mode 100644 index 00000000..79856426 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteHubspotTicketsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "DeleteHubspotTicketsBatch", + "fully_qualified_name": "HubspotCrmApi.DeleteHubspotTicketsBatch@0.1.0", + "description": "Delete a batch of tickets in HubSpot CRM.\n\nUse this tool to delete multiple tickets by ID in HubSpot CRM. Deleted tickets can be restored within 90 days.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_ids_batch", + "required": true, + "description": "A JSON array of ticket IDs to be deleted. Each ID should be a string representing a ticket in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_ids_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteInvoice.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteInvoice.json new file mode 100644 index 00000000..bf311fdb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteInvoice.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteInvoice", + "fully_qualified_name": "HubspotCrmApi.DeleteInvoice@0.1.0", + "description": "Archive an invoice by moving it to the recycling bin.\n\nUse this tool to archive an invoice in HubSpot CRM by moving it to the recycling bin. It is identified by the `{invoiceId}` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_identifier", + "required": true, + "description": "The unique identifier for the invoice to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "invoiceId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/invoices/{invoiceId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "invoiceId", + "tool_parameter_name": "invoice_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteLineItem.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteLineItem.json new file mode 100644 index 00000000..4b755dfb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteLineItem.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteLineItem", + "fully_qualified_name": "HubspotCrmApi.DeleteLineItem@0.1.0", + "description": "Moves a specified line item to the recycling bin.\n\nThis tool is used to delete or archive a line item in HubSpot CRM by moving it to the recycling bin. It should be called when a user wants to remove a line item identified by its `lineItemId`.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_item_id", + "required": true, + "description": "The unique identifier of the line item to be archived or deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "lineItemId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/line_items/{lineItemId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "lineItemId", + "tool_parameter_name": "line_item_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteList.json new file mode 100644 index 00000000..9174a2f1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteList.json @@ -0,0 +1,111 @@ +{ + "name": "DeleteList", + "fully_qualified_name": "HubspotCrmApi.DeleteList@0.1.0", + "description": "Delete a specified CRM list by its ID.\n\nUse this tool to delete a CRM list using its ID. Deleted lists can be restored within 90 days, after which they'll be permanently removed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id_to_delete", + "required": true, + "description": "The ILS ID of the CRM list to delete. Ensure the ID is correct to avoid unintentional deletion.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to delete." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/lists/{listId}_remove'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id_to_delete", + "description": "The **ILS ID** of the list to delete.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to delete." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteMeeting.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteMeeting.json new file mode 100644 index 00000000..d8aad57a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteMeeting.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteMeeting", + "fully_qualified_name": "HubspotCrmApi.DeleteMeeting@0.1.0", + "description": "Move a meeting to the recycling bin using its ID.\n\nThis tool is used to move a meeting, identified by its meeting ID, to the recycling bin in the HubSpot CRM. It is useful when you need to archive or remove a meeting from active records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_id", + "required": true, + "description": "The unique ID of the meeting to be moved to the recycling bin. This is required to identify the specific meeting.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "meetingId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/meetings/{meetingId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/{meetingId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "meetingId", + "tool_parameter_name": "meeting_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteNoteHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteNoteHubspot.json new file mode 100644 index 00000000..3fc351ad --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteNoteHubspot.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteNoteHubspot", + "fully_qualified_name": "HubspotCrmApi.DeleteNoteHubspot@0.1.0", + "description": "Move a HubSpot note to the recycling bin.\n\nUse this tool to move a note identified by `noteId` in HubSpot CRM to the recycling bin. This is useful for soft-deleting notes when they are no longer needed in the immediate CRM workspace.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "note_id", + "required": true, + "description": "The unique identifier of the note to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "noteId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/notes/{noteId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/{noteId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "noteId", + "tool_parameter_name": "note_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteObjectHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteObjectHubspot.json new file mode 100644 index 00000000..ad46270b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteObjectHubspot.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteObjectHubspot", + "fully_qualified_name": "HubspotCrmApi.DeleteObjectHubspot@0.1.0", + "description": "Move an object to the recycling bin in HubSpot CRM.\n\nUse this tool to delete an object identified by `serviceId` within the HubSpot CRM, moving it to the recycling bin.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_service_id", + "required": true, + "description": "The unique identifier for the object to be moved to the recycling bin in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "serviceId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/0-162/{serviceId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/{serviceId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "serviceId", + "tool_parameter_name": "object_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteOrderById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteOrderById.json new file mode 100644 index 00000000..3838517f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteOrderById.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteOrderById", + "fully_qualified_name": "HubspotCrmApi.DeleteOrderById@0.1.0", + "description": "Deletes an order by its ID from the CRM.\n\nUse this tool to delete an order from the CRM system by providing its unique ID. The order will be moved to the recycling bin, allowing for potential recovery later if needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_id", + "required": true, + "description": "The unique ID of the order to delete, moving it to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "orderId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/orders/{orderId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/{orderId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "orderId", + "tool_parameter_name": "order_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipeline.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipeline.json new file mode 100644 index 00000000..005f7f10 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipeline.json @@ -0,0 +1,228 @@ +{ + "name": "DeletePipeline", + "fully_qualified_name": "HubspotCrmApi.DeletePipeline@0.1.0", + "description": "Delete a specific pipeline in the CRM.\n\nThis tool is used to delete a specific pipeline in HubSpot CRM by providing the object type and pipeline ID. Call this tool when a pipeline needs to be removed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "pipeline_object_type", + "required": true, + "description": "Specify the type of object for the pipeline, such as 'deals' or 'tickets'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique identifier of the pipeline to be deleted. Required for specifying which pipeline to remove.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "validate_references_before_delete", + "required": false, + "description": "Set to true to validate references before deleting the pipeline. This prevents accidental deletion when references are present.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "validateReferencesBeforeDelete" + }, + { + "name": "validate_deal_stage_usages_before_deletion", + "required": false, + "description": "Set to true to validate deal stage usages before deleting a pipeline, preventing deletion if usages are found.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "validateDealStageUsagesBeforeDelete" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/pipelines/{objectType}/{pipelineId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "validateReferencesBeforeDelete", + "tool_parameter_name": "validate_references_before_delete", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "tool_parameter_name": "validate_deal_stage_usages_before_deletion", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "pipeline_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipelineStage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipelineStage.json new file mode 100644 index 00000000..9204e7be --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePipelineStage.json @@ -0,0 +1,195 @@ +{ + "name": "DeletePipelineStage", + "fully_qualified_name": "HubspotCrmApi.DeletePipelineStage@0.1.0", + "description": "Deletes a pipeline stage from HubSpot CRM.\n\nUse to remove a specific stage from a pipeline in HubSpot CRM by specifying the object type, pipeline ID, and stage ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the type of CRM object (e.g., deals, tickets) for which the pipeline stage is being deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique ID of the pipeline containing the stage to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "stage_identifier", + "required": true, + "description": "The unique identifier of the pipeline stage to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "stageId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "stageId", + "tool_parameter_name": "stage_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyGroup.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyGroup.json new file mode 100644 index 00000000..e4a7ba03 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyGroup.json @@ -0,0 +1,162 @@ +{ + "name": "DeletePropertyGroup", + "fully_qualified_name": "HubspotCrmApi.DeletePropertyGroup@0.1.0", + "description": "Delete a property group and move it to recycling bin.\n\nUse this tool to move a specified property group to the recycling bin in HubSpot CRM. Ideal when a property group is no longer needed and should be removed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object, such as 'contacts', 'companies', etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_group_name", + "required": true, + "description": "The name of the property group to delete. This identifies which group to move to the recycling bin in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/properties/{objectType}/groups/{groupName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "groupName", + "tool_parameter_name": "property_group_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyHubspotCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyHubspotCrm.json new file mode 100644 index 00000000..8a53eefc --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeletePropertyHubspotCrm.json @@ -0,0 +1,162 @@ +{ + "name": "DeletePropertyHubspotCrm", + "fully_qualified_name": "HubspotCrmApi.DeletePropertyHubspotCrm@0.1.0", + "description": "Delete a property in HubSpot CRM and move it to the recycling bin.\n\nUse this tool to delete a specific property from the HubSpot CRM by specifying the object type and property name. This action moves the property to the recycling bin.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the type of object in HubSpot CRM (e.g., 'contacts', 'companies').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_name", + "required": true, + "description": "The name of the property to delete, identified by its unique name within the object type.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/properties/{objectType}/{propertyName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "property_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteScheduledConversion.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteScheduledConversion.json new file mode 100644 index 00000000..4defcf48 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteScheduledConversion.json @@ -0,0 +1,111 @@ +{ + "name": "DeleteScheduledConversion", + "fully_qualified_name": "HubspotCrmApi.DeleteScheduledConversion@0.1.0", + "description": "Delete a scheduled conversion for a specific list.\n\nThis tool deletes an existing scheduled conversion for a specified list in the HubSpot CRM. It should be called when you need to cancel a conversion schedule, and it returns a confirmation of the deletion.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ID of the list for which you want to cancel the scheduled conversion.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list that you want to cancel the conversion for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/lists/{listId}/schedule-conversion'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/schedule-conversion", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The ID of the list that you want to cancel the conversion for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list that you want to cancel the conversion for." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteShoppingCart.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteShoppingCart.json new file mode 100644 index 00000000..9b1a6852 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteShoppingCart.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteShoppingCart", + "fully_qualified_name": "HubspotCrmApi.DeleteShoppingCart@0.1.0", + "description": "Delete a shopping cart from HubSpot CRM.\n\nUse this tool to move a shopping cart, identified by its `cartId`, to the recycling bin in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_identifier", + "required": true, + "description": "The unique identifier of the shopping cart to delete from HubSpot CRM. It should be a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "cartId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/carts/{cartId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/{cartId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "cartId", + "tool_parameter_name": "cart_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteSubscription.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteSubscription.json new file mode 100644 index 00000000..f03693d4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteSubscription.json @@ -0,0 +1,174 @@ +{ + "name": "DeleteSubscription", + "fully_qualified_name": "HubspotCrmApi.DeleteSubscription@0.1.0", + "description": "Delete a specific subscription from HubSpot CRM.\n\nThis tool deletes a subscription identified by `subscriptionId` from HubSpot CRM, moving it to the recycling bin. Use this when you need to remove a subscription object from the system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_id", + "required": true, + "description": "The unique identifier of the subscription to be deleted. This moves the subscription to the recycling bin in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriptionId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/subscriptions/{subscriptionId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "subscriptionId", + "tool_parameter_name": "subscription_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaskInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaskInHubspot.json new file mode 100644 index 00000000..9eef379c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaskInHubspot.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteTaskInHubspot", + "fully_qualified_name": "HubspotCrmApi.DeleteTaskInHubspot@0.1.0", + "description": "Delete a task in HubSpot by task ID.\n\nUse this tool to move a specific task in HubSpot CRM to the recycling bin by providing the task ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_id", + "required": true, + "description": "The unique identifier of the task to be deleted from HubSpot CRM. Required to move the task to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "taskId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/tasks/{taskId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/{taskId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "taskId", + "tool_parameter_name": "task_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaxEntry.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaxEntry.json new file mode 100644 index 00000000..094cb7e2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTaxEntry.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteTaxEntry", + "fully_qualified_name": "HubspotCrmApi.DeleteTaxEntry@0.1.0", + "description": "Archive a tax entry in HubSpot CRM.\n\nUse this tool to move a tax object identified by `taxId` to the recycling bin in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_entry_id", + "required": true, + "description": "The unique identifier for the tax entry you want to archive in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "taxId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/taxes/{taxId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/{taxId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "taxId", + "tool_parameter_name": "tax_entry_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTicket.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTicket.json new file mode 100644 index 00000000..fd08cfac --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteTicket.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteTicket", + "fully_qualified_name": "HubspotCrmApi.DeleteTicket@0.1.0", + "description": "Move a ticket to the recycling bin by ticket ID.\n\nUse this tool to delete a CRM ticket by moving it to the recycling bin using its unique ticket ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The unique ID of the ticket to move to the recycling bin. Must be a valid string representing the ticket identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticketId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/tickets/{ticketId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/{ticketId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "ticketId", + "tool_parameter_name": "ticket_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteUser.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteUser.json new file mode 100644 index 00000000..6e566c85 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/DeleteUser.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteUser", + "fully_qualified_name": "HubspotCrmApi.DeleteUser@0.1.0", + "description": "Delete a user and move to recycling bin.\n\n", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_id_to_delete", + "required": true, + "description": "The unique identifier of the user to delete and move to the recycling bin.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "userId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/users/{userId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/{userId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "userId", + "tool_parameter_name": "user_id_to_delete", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EditHubspotObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EditHubspotObject.json new file mode 100644 index 00000000..6e64bcb5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EditHubspotObject.json @@ -0,0 +1,193 @@ +{ + "name": "EditHubspotObject", + "fully_qualified_name": "HubspotCrmApi.EditHubspotObject@0.1.0", + "description": "Partially update a HubSpot CRM object with specified properties.\n\nThis tool performs a partial update on a HubSpot CRM object identified by the `serviceId` or a unique property value using the `idProperty` query parameter. It overwrites provided properties while ensuring read-only or non-existent properties result in errors. Properties can be cleared with an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_identifier", + "required": true, + "description": "The unique identifier or `{serviceId}` for the object to be updated. This can be an internal object ID or a unique property value when used with `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "serviceId" + }, + { + "name": "object_properties_update", + "required": true, + "description": "JSON object with key-value pairs representing the properties to be updated. Use empty strings to clear values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property for the object, used instead of the internal ID if specified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/0-162/{serviceId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/{serviceId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "serviceId", + "tool_parameter_name": "object_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "object_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EnableObjectTypeInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EnableObjectTypeInHubspot.json new file mode 100644 index 00000000..fb7302a8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/EnableObjectTypeInHubspot.json @@ -0,0 +1,173 @@ +{ + "name": "EnableObjectTypeInHubspot", + "fully_qualified_name": "HubspotCrmApi.EnableObjectTypeInHubspot@0.1.0", + "description": "Enable an object type in HubSpot CRM via its ID.\n\nThis tool is used to enable a specific object type in HubSpot's CRM system using the object's unique ID. It should be called when there is a need to activate or verify the activation status of a specific object category in HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_id", + "required": true, + "description": "The unique identifier for the object type in HubSpot CRM that needs to be enabled.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectTypeId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/object-library/enablement/{objectTypeId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/object-library/enablement/{objectTypeId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectTypeId", + "tool_parameter_name": "object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchAssociationLimitObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchAssociationLimitObjects.json new file mode 100644 index 00000000..13bba8d1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchAssociationLimitObjects.json @@ -0,0 +1,173 @@ +{ + "name": "FetchAssociationLimitObjects", + "fully_qualified_name": "HubspotCrmApi.FetchAssociationLimitObjects@0.1.0", + "description": "Fetch objects approaching association limits for a specified type.\n\nUse this tool to retrieve objects where the specified 'from' object type has records that are nearing or have reached their association limits in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "from_object_type_id", + "required": true, + "description": "Identifier for the 'from' object type whose records' association limits are being queried.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectTypeId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/associations/records/{fromObjectTypeId}/to'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/associations/records/{fromObjectTypeId}/to", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "fromObjectTypeId", + "tool_parameter_name": "from_object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchEnablementData.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchEnablementData.json new file mode 100644 index 00000000..0b684df7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchEnablementData.json @@ -0,0 +1,138 @@ +{ + "name": "FetchEnablementData", + "fully_qualified_name": "HubspotCrmApi.FetchEnablementData@0.1.0", + "description": "Fetch enablement data from HubSpot CRM.\n\nUse this tool to obtain enablement information from the HubSpot CRM. It should be called when detailed enablement data is required for CRM-related operations or analyses.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/object-library/enablement'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/object-library/enablement", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListById.json new file mode 100644 index 00000000..d6d750c7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListById.json @@ -0,0 +1,142 @@ +{ + "name": "FetchHubspotListById", + "fully_qualified_name": "HubspotCrmApi.FetchHubspotListById@0.1.0", + "description": "Fetch a single HubSpot CRM list using its ILS list ID.\n\n", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ILS ID of the HubSpot CRM list to fetch.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to fetch." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "include_filter_definitions", + "required": false, + "description": "Include filter branch definitions in the response. Defaults to false, meaning filter definitions are not included.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFilters" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/{listId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeFilters", + "tool_parameter_name": "include_filter_definitions", + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The **ILS ID** of the list to fetch.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to fetch." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListMemberships.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListMemberships.json new file mode 100644 index 00000000..a4494b92 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotListMemberships.json @@ -0,0 +1,208 @@ +{ + "name": "FetchHubspotListMemberships", + "fully_qualified_name": "HubspotCrmApi.FetchHubspotListMemberships@0.1.0", + "description": "Retrieve memberships of a HubSpot list by order of record ID.\n\nUse this tool to fetch the memberships of a specific list in HubSpot CRM, sorted by `recordId`. The results can be ordered in ascending or descending order based on the presence of an `after` or `before` offset.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_identifier", + "required": true, + "description": "The ILS ID of the HubSpot list to retrieve memberships for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "paging_offset_after_token", + "required": false, + "description": "The paging offset token for the page that comes after the previously requested records. If provided, records will follow this offset, sorted in ascending order. Takes precedence over the before offset.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "before_offset_token", + "required": false, + "description": "The paging offset token for the page before the previously requested records, used to sort records in descending order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order." + }, + "inferrable": true, + "http_endpoint_parameter_name": "before" + }, + { + "name": "number_of_records_to_return", + "required": false, + "description": "Defines how many records to retrieve in the response, with a maximum value of 250.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return in the response. The maximum `limit` is 250." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/{listId}/memberships_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "paging_offset_after_token", + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "before", + "tool_parameter_name": "before_offset_token", + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "number_of_records_to_return", + "description": "The number of records to return in the response. The maximum `limit` is 250.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return in the response. The maximum `limit` is 250." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 100, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_identifier", + "description": "The **ILS ID** of the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectById.json new file mode 100644 index 00000000..70d80b04 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectById.json @@ -0,0 +1,372 @@ +{ + "name": "FetchHubspotObjectById", + "fully_qualified_name": "HubspotCrmApi.FetchHubspotObjectById@0.1.0", + "description": "Retrieve a HubSpot CRM object using its unique ID.\n\nUse this tool to fetch the details of a HubSpot CRM object by its unique ID. Specify the object type and optional parameters to control the returned data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The type of the HubSpot CRM object you want to retrieve. Examples include 'contact', 'company', and 'deal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_identifier", + "required": true, + "description": "The unique identifier of the HubSpot CRM object to retrieve. This can be the internal object ID or another unique property value if specified by the `id_property` parameter.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "return_properties", + "required": false, + "description": "List of properties to return for the object. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return along with their historical values. Ignored if properties are not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Specify object types to retrieve associated IDs for, separated by commas. Non-existing associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the property name that uniquely identifies the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. Set to false to include all results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/{objectType}/{objectId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "object_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectRecords.json new file mode 100644 index 00000000..32f58a70 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotObjectRecords.json @@ -0,0 +1,226 @@ +{ + "name": "FetchHubspotObjectRecords", + "fully_qualified_name": "HubspotCrmApi.FetchHubspotObjectRecords@0.1.0", + "description": "Retrieve HubSpot CRM records by ID or custom property.\n\nUse this tool to retrieve HubSpot CRM records by specifying record IDs or by using a custom unique value property with the `idProperty` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "record_retrieval_body", + "required": true, + "description": "JSON object for specifying the IDs or custom properties to retrieve records. Include properties, propertiesWithHistory, idProperty (if using custom unique value), and inputs to specify the required records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Indicate if only archived records should be returned when retrieving HubSpot CRM data.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "record_retrieval_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotRecords.json new file mode 100644 index 00000000..6b28f157 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchHubspotRecords.json @@ -0,0 +1,226 @@ +{ + "name": "FetchHubspotRecords", + "fully_qualified_name": "HubspotCrmApi.FetchHubspotRecords@0.1.0", + "description": "Retrieve HubSpot CRM records by ID or custom property.\n\nThis tool retrieves records from HubSpot CRM using either a record ID or a custom unique value property. It should be called when you need to access specific CRM records based on these identifiers.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "retrieve_records_request_body", + "required": true, + "description": "JSON object for specifying record retrieval by ID, custom property, and desired properties. Includes 'idProperty' to use a custom unique property, 'inputs' for record IDs, 'properties' for desired record properties, and 'propertiesWithHistory' if history is required.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_records_only", + "required": false, + "description": "Set to true to return only HubSpot CRM records that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_records_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "retrieve_records_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListByName.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListByName.json new file mode 100644 index 00000000..c0cfee0d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListByName.json @@ -0,0 +1,175 @@ +{ + "name": "FetchListByName", + "fully_qualified_name": "HubspotCrmApi.FetchListByName@0.1.0", + "description": "Fetch details of a list by its name and object type.\n\nUse this tool to obtain the information of a specific list in HubSpot CRM by providing the list name and object type ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_name", + "required": true, + "description": "The name of the list to fetch. This is not case sensitive.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the list to fetch. This is **not** case sensitive." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listName" + }, + { + "name": "object_type_id", + "required": true, + "description": "The object type ID for the list. Example: `0-1` for `CONTACT`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The object type ID of the object types stored by the list to fetch. For example, `0-1` for a `CONTACT` list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectTypeId" + }, + { + "name": "include_filters", + "required": false, + "description": "Set to true to include filter branch definitions in the response. By default, filters are not included.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFilters" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}_getByName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/object-type-id/{objectTypeId}/name/{listName}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeFilters", + "tool_parameter_name": "include_filters", + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "listName", + "tool_parameter_name": "list_name", + "description": "The name of the list to fetch. This is **not** case sensitive.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the list to fetch. This is **not** case sensitive." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectTypeId", + "tool_parameter_name": "object_type_id", + "description": "The object type ID of the object types stored by the list to fetch. For example, `0-1` for a `CONTACT` list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The object type ID of the object types stored by the list to fetch. For example, `0-1` for a `CONTACT` list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListMembershipsOrdered.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListMembershipsOrdered.json new file mode 100644 index 00000000..0983865b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchListMembershipsOrdered.json @@ -0,0 +1,208 @@ +{ + "name": "FetchListMembershipsOrdered", + "fully_qualified_name": "HubspotCrmApi.FetchListMembershipsOrdered@0.1.0", + "description": "Fetch list memberships ordered by addition date.\n\nFetch the memberships of a HubSpot CRM list, ordered by the date they were added. Useful for retrieving member records in an ascending order based on addition time, or in descending order if a 'before' offset is used.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The unique ILS ID of the list to retrieve memberships from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "after_paging_offset_token", + "required": false, + "description": "The token for the page that comes after the previously requested records, sorted in ascending order. Takes precedence over 'before'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "before_offset_token", + "required": false, + "description": "The paging offset token to retrieve records preceding the specified page, sorted in descending order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order." + }, + "inferrable": true, + "http_endpoint_parameter_name": "before" + }, + { + "name": "record_limit", + "required": false, + "description": "Specify the number of records to return, with a maximum limit of 250.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return in the response. The maximum `limit` is 250." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/{listId}/memberships/join-order_getPageOrderedByAddedToListDate'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships/join-order", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "after_paging_offset_token", + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `after` the previously requested records.\n\nIf provided, then the records in the response will be the records following the offset, sorted in *ascending* order. Takes precedence over the `before` offset." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "before", + "tool_parameter_name": "before_offset_token", + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging offset token for the page that comes `before` the previously requested records.\n\nIf provided, then the records in the response will be the records preceding the offset, sorted in *descending* order." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "record_limit", + "description": "The number of records to return in the response. The maximum `limit` is 250.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of records to return in the response. The maximum `limit` is 250." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 100, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The **ILS ID** of the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchPropertyValidation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchPropertyValidation.json new file mode 100644 index 00000000..ea43c0b5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchPropertyValidation.json @@ -0,0 +1,219 @@ +{ + "name": "FetchPropertyValidation", + "fully_qualified_name": "HubspotCrmApi.FetchPropertyValidation@0.1.0", + "description": "Retrieve validation rules for a specific property in HubSpot CRM.\n\nThis tool is used to read the validation rules of a property identified by {propertyName} within a specified object type in HubSpot CRM. It helps to understand the constraints and validations applied to a property.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_id", + "required": true, + "description": "The unique identifier for the object type in HubSpot CRM, such as \"contacts\" or \"deals\".", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectTypeId" + }, + { + "name": "property_name", + "required": true, + "description": "The name of the property whose validation rules you want to retrieve in HubSpot CRM. It must match exactly to identify the property correctly.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/property-validations/{objectTypeId}/{propertyName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/property-validations/{objectTypeId}/{propertyName}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectTypeId", + "tool_parameter_name": "object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "property_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchTicketsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchTicketsPage.json new file mode 100644 index 00000000..d2135ae0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/FetchTicketsPage.json @@ -0,0 +1,274 @@ +{ + "name": "FetchTicketsPage", + "fully_qualified_name": "HubspotCrmApi.FetchTicketsPage@0.1.0", + "description": "Retrieve a page of tickets from HubSpot CRM.\n\nUse this tool to read a page of tickets from HubSpot CRM. You can control the returned data using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page", + "required": false, + "description": "The maximum number of results to display per page. Must be a positive integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token for the last read resource to continue paging results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "include_properties", + "required": false, + "description": "A list of properties to return for each ticket. Specify as strings; unlisted properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of property names to return with their historical values. Reduces the number of tickets retrievable per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tickets that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types (e.g. 'contacts', 'companies') to retrieve associated IDs for tickets. Ignore if they don't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Return only archived tickets if set to 'True'.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/tickets_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "include_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tickets that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tickets that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteContact.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteContact.json new file mode 100644 index 00000000..8193b6b0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteContact.json @@ -0,0 +1,142 @@ +{ + "name": "GdprDeleteContact", + "fully_qualified_name": "HubspotCrmApi.GdprDeleteContact@0.1.0", + "description": "Permanently delete a contact for GDPR compliance.\n\nUse this tool to permanently delete a contact and all associated content to comply with GDPR. You can identify the contact by email address using the 'idProperty'. If the email isn't found, it will be added to a blocklist to avoid future use.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "The unique ID or email used to identify the contact for deletion. Use 'email' in conjunction with 'id_property' if identifying by email.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "contact_identifier_property", + "required": false, + "description": "Specify 'email' to identify the contact by email address. If not using email, specify another unique identifier property.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/gdpr-delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/gdpr-delete", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectId", + "tool_parameter_name": "contact_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "contact_identifier_property", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectId\": {\n \"type\": \"string\"\n },\n \"idProperty\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteObject.json new file mode 100644 index 00000000..640734eb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GdprDeleteObject.json @@ -0,0 +1,240 @@ +{ + "name": "GdprDeleteObject", + "fully_qualified_name": "HubspotCrmApi.GdprDeleteObject@0.1.0", + "description": "Delete CRM objects in compliance with GDPR.\n\nThis tool removes specified CRM objects in accordance with GDPR regulations. It's used when you need to ensure data is deleted to comply with GDPR requests.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_for_gdpr_deletion", + "required": true, + "description": "Specify the type of CRM object to delete (e.g., contacts, companies) for GDPR compliance.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_id", + "required": true, + "description": "The unique identifier for the CRM object to be deleted under GDPR compliance.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify a unique property name for the object to be deleted under GDPR.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/gdpr-delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/gdpr-delete", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type_for_gdpr_deletion", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAllPipelines.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAllPipelines.json new file mode 100644 index 00000000..8bcef146 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAllPipelines.json @@ -0,0 +1,186 @@ +{ + "name": "GetAllPipelines", + "fully_qualified_name": "HubspotCrmApi.GetAllPipelines@0.1.0", + "description": "Retrieve all pipelines for a specified object type.\n\nUse this tool to fetch all pipelines related to a specific object type in HubSpot CRM. This is useful for obtaining pipeline information for various CRM entities such as contacts, deals, etc.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the CRM object type (e.g., contacts, deals) to retrieve pipelines for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}_getAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAppointmentsData.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAppointmentsData.json new file mode 100644 index 00000000..7555b418 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAppointmentsData.json @@ -0,0 +1,372 @@ +{ + "name": "GetAppointmentsData", + "fully_qualified_name": "HubspotCrmApi.GetAppointmentsData@0.1.0", + "description": "Retrieve a page of appointments from HubSpot CRM.\n\nFetches appointment details using the specified properties to control the data returned. Useful for accessing and managing CRM appointment information.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "appointment_object_type", + "required": true, + "description": "The type of HubSpot object to be queried, specifically for appointments.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "results_limit", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "Token indicating the last successfully read resource to continue pagination.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "appointment_properties_to_return", + "required": false, + "description": "A list of property names to include in the response. Properties not present on the requested objects are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List properties to return with their history of values. Reduces max results per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of appointments that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. If specified associations don't exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "only_archived_results", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/objects/v3/{objectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_limit", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "appointment_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of appointments that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of appointments that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "appointment_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationLimitRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationLimitRecords.json new file mode 100644 index 00000000..fa68d488 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationLimitRecords.json @@ -0,0 +1,206 @@ +{ + "name": "GetAssociationLimitRecords", + "fully_qualified_name": "HubspotCrmApi.GetAssociationLimitRecords@0.1.0", + "description": "Fetch records near association limits between two objects.\n\nUse this tool to retrieve records that are close to or have reached the association limits between specified objects in HubSpot CRM. This is useful for monitoring and managing object relationships within the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_object_type_id", + "required": true, + "description": "Specifies the ID of the source object type to check association limits from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectTypeId" + }, + { + "name": "to_object_type_id", + "required": true, + "description": "The ID of the target object type for the association limit query.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectTypeId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/associations/records/{fromObjectTypeId}/{toObjectTypeId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "fromObjectTypeId", + "tool_parameter_name": "source_object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectTypeId", + "tool_parameter_name": "to_object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationTypes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationTypes.json new file mode 100644 index 00000000..c36af2bc --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationTypes.json @@ -0,0 +1,206 @@ +{ + "name": "GetAssociationTypes", + "fully_qualified_name": "HubspotCrmApi.GetAssociationTypes@0.1.0", + "description": "Get association types between two object types in HubSpot CRM.\n\nUse this tool to retrieve all association types between specified object types in HubSpot CRM. This is useful when needing to understand the relationships between different entities in the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_object_type", + "required": true, + "description": "Specifies the source object type in HubSpot CRM from which associations are retrieved (e.g., 'contact', 'deal').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectType" + }, + { + "name": "target_object_type", + "required": true, + "description": "Specify the type of the destination object to retrieve association types for. These are the related entities in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/associations/{fromObjectType}/{toObjectType}/types_getAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/types", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "fromObjectType", + "tool_parameter_name": "source_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationsInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationsInHubspot.json new file mode 100644 index 00000000..20a31c6f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetAssociationsInHubspot.json @@ -0,0 +1,339 @@ +{ + "name": "GetAssociationsInHubspot", + "fully_qualified_name": "HubspotCrmApi.GetAssociationsInHubspot@0.1.0", + "description": "Retrieve associations between HubSpot CRM objects.\n\nThis tool is used to get the associations between specified HubSpot CRM objects. Useful for identifying relationships between different objects in the CRM, such as contacts, deals, or companies.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the type of HubSpot CRM object (e.g., contact, deal, company) whose associations you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "hubspot_object_id", + "required": true, + "description": "The unique identifier for the HubSpot CRM object whose associations are being requested.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of the target object to which the association is being found. Specify the object type like 'contact', 'deal', 'company', etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "paging_offset_after", + "required": false, + "description": "A string used for pagination to get the next set of results after the specified cursor. Leave empty or omit for the first set of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "max_results", + "required": false, + "description": "Specifies the maximum number of associations to return. Provide an integer value to limit the results.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "include_full_associations", + "required": false, + "description": "Set to true to include full associations in the response, otherwise only basic associations will be returned.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFA" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "paging_offset_after", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "max_results", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 500, + "documentation_urls": [] + }, + { + "name": "includeFA", + "tool_parameter_name": "include_full_associations", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "hubspot_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCalculatedPropertiesLimits.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCalculatedPropertiesLimits.json new file mode 100644 index 00000000..c2cab508 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCalculatedPropertiesLimits.json @@ -0,0 +1,138 @@ +{ + "name": "GetCalculatedPropertiesLimits", + "fully_qualified_name": "HubspotCrmApi.GetCalculatedPropertiesLimits@0.1.0", + "description": "Get limits and usage for calculated properties in HubSpot CRM.\n\nCall this tool to retrieve overall limits and per object usage for calculated properties in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/calculated-properties'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/calculated-properties", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallDetails.json new file mode 100644 index 00000000..0c49c36b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetCallDetails", + "fully_qualified_name": "HubspotCrmApi.GetCallDetails@0.1.0", + "description": "Retrieve details of a call using its ID in HubSpot CRM.\n\nThis tool fetches the details of a call object in HubSpot CRM using the call ID. It allows optional control over which properties of the call are returned. Use this tool to retrieve specific information on call objects by their unique identification.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "call_identifier", + "required": true, + "description": "The unique identifier for the call. This can be an internal object ID or a unique property value as specified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "callId" + }, + { + "name": "return_properties", + "required": false, + "description": "Comma-separated list of properties to return in the response. Ignored if not present on requested object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma-separated list of properties to return with history. Ignores non-existent properties.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Specify object types to retrieve associated IDs for. Use comma-separated values.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Unique property name used to identify the call object in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_archived_results", + "required": false, + "description": "Specify `True` to return only archived results, otherwise `False`.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/calls/{callId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/{callId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "callId", + "tool_parameter_name": "call_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallsPage.json new file mode 100644 index 00000000..044dbc51 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCallsPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetCallsPage", + "fully_qualified_name": "HubspotCrmApi.GetCallsPage@0.1.0", + "description": "Retrieve a page of call records from HubSpot CRM.\n\nThis tool is used to retrieve a page of call records from the HubSpot CRM. The response can be customized by specifying the desired call properties through the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page", + "required": false, + "description": "The maximum number of call records to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The paging cursor token from the last successfully read resource for retrieving the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "call_properties", + "required": false, + "description": "A list of properties to include in the response, such as call date, duration, etc.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with historical values. Note: Reduces max calls per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of calls that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Specify object types to retrieve associated IDs for. Comma-separated list. Non-existing associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived call records. False will include non-archived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/calls_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "call_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of calls that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of calls that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCartDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCartDetails.json new file mode 100644 index 00000000..05b85869 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCartDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetCartDetails", + "fully_qualified_name": "HubspotCrmApi.GetCartDetails@0.1.0", + "description": "Retrieve detailed information of a cart by ID.\n\nUse this tool to get detailed information about a specific cart in the HubSpot CRM by providing the cart ID. It allows for optional specification of unique property values and controlled return data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_identifier", + "required": true, + "description": "The unique identifier for the cart. This can be the internal ID or a unique property value specified by the `idProperty` parameter.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "cartId" + }, + { + "name": "return_properties", + "required": false, + "description": "List of specific properties to retrieve for the cart. Ignored if properties don't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Specify properties to retrieve alongside their history of previous values, separated by commas.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for, such as 'deals' or 'contacts'.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify a property name with unique values for the cart object, if not using the default internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_return_archived_results", + "required": false, + "description": "Set to `true` to return only archived results; `false` includes all.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/carts/{cartId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/{cartId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "cartId", + "tool_parameter_name": "cart_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommercePayments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommercePayments.json new file mode 100644 index 00000000..a990fac0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommercePayments.json @@ -0,0 +1,274 @@ +{ + "name": "GetCommercePayments", + "fully_qualified_name": "HubspotCrmApi.GetCommercePayments@0.1.0", + "description": "Retrieve a page of commerce payments from HubSpot CRM.\n\nThis tool allows you to retrieve a page of commerce payments from HubSpot CRM, with customizable properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The paging cursor token from the last successfully read resource. Used for paginating through results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "returned_properties", + "required": false, + "description": "List the properties to return in the response. Non-present properties are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to be returned with their historical values. Reduces the maximum payments per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of commerce payments that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associations_to_retrieve", + "required": false, + "description": "List of object types to retrieve associated IDs for. Non-existing associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "show_only_archived", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/commerce_payments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "returned_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of commerce payments that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of commerce payments that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associations_to_retrieve", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "show_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommunicationById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommunicationById.json new file mode 100644 index 00000000..f6fd462c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCommunicationById.json @@ -0,0 +1,274 @@ +{ + "name": "GetCommunicationById", + "fully_qualified_name": "HubspotCrmApi.GetCommunicationById@0.1.0", + "description": "Retrieve details of a communication by its ID.\n\nUse this tool to obtain the details of a communication object by specifying its unique ID. The ID can be the internal object ID or any unique property value. You can control the returned data using query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "communication_identifier", + "required": true, + "description": "Specify the unique ID or property value for the communication object to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "communicationId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "Comma-separated list of properties to include in the response. Missing properties are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List the properties whose history of values should be returned. Comma-separated values are expected.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "required": false, + "description": "A list of object types for retrieving associated IDs. Non-existing associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name used to uniquely identify the communication object. Allows retrieval by non-default identifiers.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only results that have been archived. Defaults to false to include non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/communications/{communicationId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/{communicationId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "communicationId", + "tool_parameter_name": "communication_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContactDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContactDetails.json new file mode 100644 index 00000000..ac448c8a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContactDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetContactDetails", + "fully_qualified_name": "HubspotCrmApi.GetContactDetails@0.1.0", + "description": "Retrieve detailed information about a specific contact.\n\nThis tool fetches detailed information about a contact from HubSpot CRM, identified by `contactId`. It provides an option to specify which properties to return using query parameters. Use this tool when you need to access in-depth details about a contact, such as their internal object ID or any unique property value.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "The ID or unique property value used to identify the contact in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactId" + }, + { + "name": "return_properties", + "required": false, + "description": "List of properties to include in the response for the contact. If absent on the object, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with their history of previous values. Ignored if properties are not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Ignored if associations do not exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name with unique values for the contact type, used to identify the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/contacts/{contactId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/{contactId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "contactId", + "tool_parameter_name": "contact_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContacts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContacts.json new file mode 100644 index 00000000..8adcd697 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetContacts.json @@ -0,0 +1,274 @@ +{ + "name": "GetContacts", + "fully_qualified_name": "HubspotCrmApi.GetContacts@0.1.0", + "description": "Retrieve a page of contacts from HubSpot CRM.\n\nThis tool retrieves a page of contacts from the HubSpot CRM. You can specify which properties you want to be returned by controlling the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "The maximum number of contact results to return per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token indicating the last read resource, used for pagination to retrieve more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "contact_properties_to_retrieve", + "required": false, + "description": "A list of properties to include in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Specify properties to return with their history of previous values, reducing the max number of objects per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_ids", + "required": false, + "description": "A list of object types to retrieve associated IDs for. If associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Whether to return only results that have been archived. Use 'true' for archived only.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/contacts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "contact_properties_to_retrieve", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourseDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourseDetails.json new file mode 100644 index 00000000..eb97b066 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourseDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetCourseDetails", + "fully_qualified_name": "HubspotCrmApi.GetCourseDetails@0.1.0", + "description": "Fetch details of a course using the course ID.\n\nUse this tool to retrieve detailed information about a course identified by its ID. The tool provides access to all course-related data, leveraging the course ID or any unique property value specified.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "course_id", + "required": true, + "description": "The unique identifier for the course. Use this to specify which course details to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "courseId" + }, + { + "name": "include_properties", + "required": false, + "description": "A list of property names to include in the response. Any missing properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "include_properties_with_history", + "required": false, + "description": "Specify properties to retrieve with their history of changes. Input as a list, each entry being a property name.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "required": false, + "description": "A list of object types for retrieving associated IDs. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a unique property for the course object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-410/{courseId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/{courseId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "include_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "include_properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "courseId", + "tool_parameter_name": "course_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourses.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourses.json new file mode 100644 index 00000000..08db2c8d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCourses.json @@ -0,0 +1,274 @@ +{ + "name": "GetCourses", + "fully_qualified_name": "HubspotCrmApi.GetCourses@0.1.0", + "description": "Fetch a page of courses from HubSpot CRM.\n\nUse this tool to read and retrieve information about a page of courses from HubSpot CRM. The response can be tailored using the `properties` query parameter to control what specific data is returned.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "Specify the maximum number of courses to display in a single page of results.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The paging cursor token of the last successfully read resource, used to fetch the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "properties_to_return", + "required": false, + "description": "Comma separated list of properties to include in the response. Ignored if not present on requested objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history. This can reduce the number of courses per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of courses that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for; ignored if non-existent.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. False includes non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-410'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of courses that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of courses that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmFees.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmFees.json new file mode 100644 index 00000000..c50558cb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmFees.json @@ -0,0 +1,274 @@ +{ + "name": "GetCrmFees", + "fully_qualified_name": "HubspotCrmApi.GetCrmFees@0.1.0", + "description": "Fetch a list of fees from the CRM.\n\nRetrieve a page of fee objects from the CRM, allowing control over returned properties through query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of fees to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token used to retrieve the next page of results. Use the token returned in `paging.next.after` from a previous response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "fee_properties_to_return", + "required": false, + "description": "List of properties to be returned in the response. If a property is not present, it will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history. Reduces max number of fees per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of fees that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for. Ignored if associations don't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/fees'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "fee_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of fees that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of fees that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmObjectSchema.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmObjectSchema.json new file mode 100644 index 00000000..4dcd5887 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCrmObjectSchema.json @@ -0,0 +1,112 @@ +{ + "name": "GetCrmObjectSchema", + "fully_qualified_name": "HubspotCrmApi.GetCrmObjectSchema@0.1.0", + "description": "Retrieve a CRM object schema by its type.\n\nUse this tool to get detailed information about a specific CRM object schema by providing the object type. This helps in understanding the structure and properties of the CRM object within HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The fully qualified name or object type ID of the CRM schema to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm-object-schemas/v3/schemas/{objectType}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + "crm.schemas.custom.read", + "crm.objects.custom.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "Fully qualified name or object type ID of your schema.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomAssociationLabelsLimits.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomAssociationLabelsLimits.json new file mode 100644 index 00000000..be9b0566 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomAssociationLabelsLimits.json @@ -0,0 +1,206 @@ +{ + "name": "GetCustomAssociationLabelsLimits", + "fully_qualified_name": "HubspotCrmApi.GetCustomAssociationLabelsLimits@0.1.0", + "description": "Get limits and usage for custom association labels in HubSpot CRM.\n\nThis tool retrieves limits and current usage information for custom association labels within the HubSpot CRM environment. It should be called when you need to understand the constraints or current utilization of these labels.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_object_type_id", + "required": false, + "description": "The unique identifier for the source object type. It specifies which object type the association is coming from in the CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectTypeId" + }, + { + "name": "target_object_type_id", + "required": false, + "description": "The ID of the target object type to which the association label applies. Specify the target entity in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectTypeId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/associations/labels'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/associations/labels", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "fromObjectTypeId", + "tool_parameter_name": "source_object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectTypeId", + "tool_parameter_name": "target_object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomObjectLimits.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomObjectLimits.json new file mode 100644 index 00000000..2330ba18 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomObjectLimits.json @@ -0,0 +1,81 @@ +{ + "name": "GetCustomObjectLimits", + "fully_qualified_name": "HubspotCrmApi.GetCustomObjectLimits@0.1.0", + "description": "Retrieve limits and usage for HubSpot custom object schemas.\n\nThis tool is used to get the limits and usage data for custom object schemas in HubSpot CRM. It's useful for monitoring and managing custom object types and understanding their current usage.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/custom-object-types'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.custom.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.custom.read", + "crm.schemas.custom.read", + "crm.objects.custom.write", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/custom-object-types", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomPropertyLimits.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomPropertyLimits.json new file mode 100644 index 00000000..03ea4526 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetCustomPropertyLimits.json @@ -0,0 +1,138 @@ +{ + "name": "GetCustomPropertyLimits", + "fully_qualified_name": "HubspotCrmApi.GetCustomPropertyLimits@0.1.0", + "description": "Retrieve limits and usage for custom properties per object.\n\nUse this tool to access the limits and usage statistics for custom properties categorized by object in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/custom-properties'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/custom-properties", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetDealsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetDealsPage.json new file mode 100644 index 00000000..6f8eb6fb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetDealsPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetDealsPage", + "fully_qualified_name": "HubspotCrmApi.GetDealsPage@0.1.0", + "description": "Read a page of deals from the CRM system.\n\nUse this tool to retrieve a page of deals from HubSpot CRM. You can control the information returned by specifying desired properties through query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_limit_per_page", + "required": false, + "description": "The maximum number of deals to display per page, as an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token for the paging cursor to retrieve the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "deal_properties", + "required": false, + "description": "List the properties to include in the response as a comma-separated string. Ignored if not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of deal properties for which historical values are returned. Usage reduces max results per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of deals that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for, separated by commas. If associations don't exist, they're ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results; false to include active results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-3_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_limit_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "deal_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of deals that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of deals that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeeDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeeDetails.json new file mode 100644 index 00000000..ac732220 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeeDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetFeeDetails", + "fully_qualified_name": "HubspotCrmApi.GetFeeDetails@0.1.0", + "description": "Retrieve information about a specific fee by ID.\n\nThis tool is used to get detailed information about a fee object in HubSpot CRM using the fee's unique identifier. It can control the returned data with optional query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_identifier", + "required": true, + "description": "The unique identifier for the fee object to retrieve. It can be the internal object ID or a value from a unique property specified by the `idProperty` parameter.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "feeId" + }, + { + "name": "return_properties", + "required": false, + "description": "A list of properties to return for the fee object. Any non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history of previous values, specified as strings. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the property name with unique values for the fee object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_return_archived_results", + "required": false, + "description": "Set to true to retrieve only archived results. False for non-archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/fees/{feeId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/{feeId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "feeId", + "tool_parameter_name": "fee_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissionById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissionById.json new file mode 100644 index 00000000..50c9ad97 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissionById.json @@ -0,0 +1,275 @@ +{ + "name": "GetFeedbackSubmissionById", + "fully_qualified_name": "HubspotCrmApi.GetFeedbackSubmissionById@0.1.0", + "description": "Retrieve feedback submission details by ID.\n\nUse this tool to obtain details of a feedback submission using its ID. You can specify additional properties to control the details returned.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "feedback_submission_id", + "required": true, + "description": "The ID of the feedback submission to retrieve details for. This can be the internal object ID or a unique property value specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "feedbackSubmissionId" + }, + { + "name": "return_properties", + "required": false, + "description": "List of properties to return in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma-separated list of properties to return with their history of previous values. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. If nonexistent, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property whose values are unique for the feedback submission object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results, false for active ones.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/feedback_submissions/{feedbackSubmissionId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "feedbackSubmissionId", + "tool_parameter_name": "feedback_submission_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissions.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissions.json new file mode 100644 index 00000000..351f3979 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetFeedbackSubmissions.json @@ -0,0 +1,275 @@ +{ + "name": "GetFeedbackSubmissions", + "fully_qualified_name": "HubspotCrmApi.GetFeedbackSubmissions@0.1.0", + "description": "Retrieve a page of feedback submissions from the CRM.\n\nThis tool retrieves a page of feedback submissions from HubSpot CRM. It allows control over the returned data using the 'properties' query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token of the last read resource for fetching the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "properties_to_return", + "required": false, + "description": "List of properties to return for each feedback submission. Comma separated. Ignores non-existing properties.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of property names whose history of values should be returned. Properties not present will be ignored. Reduces the maximum number of submissions per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of feedback submissions that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma separated list of object types to retrieve associated IDs for, like 'contacts' or 'companies'. Ignored if nonexistent.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived feedback submissions; false to include both archived and active submissions.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/feedback_submissions_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/feedback_submissions", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of feedback submissions that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of feedback submissions that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargetById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargetById.json new file mode 100644 index 00000000..cb3efae3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargetById.json @@ -0,0 +1,274 @@ +{ + "name": "GetGoalTargetById", + "fully_qualified_name": "HubspotCrmApi.GetGoalTargetById@0.1.0", + "description": "Retrieve goal target object details using its ID.\n\nThis tool retrieves details of a goal target object identified by `goalTargetId`. It can use either the default internal object ID or any unique property value specified by the `idProperty` query parameter. The `properties` query parameter can control what information is returned.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_id", + "required": true, + "description": "The unique identifier for the goal target object. Can be the internal object ID or a unique property value specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "goalTargetId" + }, + { + "name": "returned_properties", + "required": false, + "description": "List of properties to return. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma-separated properties to return with their value histories. Ignored if properties are absent on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Specify object types to retrieve associated IDs. If not present, they will be ignored. Use commas to separate multiple types.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name used as a unique identifier for the goal target object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "archived_results", + "required": false, + "description": "Set to true to return only archived results. Default is false.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/goal_targets/{goalTargetId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "returned_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "goalTargetId", + "tool_parameter_name": "goal_target_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargets.json new file mode 100644 index 00000000..af5cef80 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetGoalTargets.json @@ -0,0 +1,274 @@ +{ + "name": "GetGoalTargets", + "fully_qualified_name": "HubspotCrmApi.GetGoalTargets@0.1.0", + "description": "Retrieve a page of goal targets from HubSpot CRM.\n\nUse this tool to access a specific page of goal targets within HubSpot CRM. You can control the data returned by specifying the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page_limit", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "Token of the last successfully read item. Use it for fetching the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "returned_properties", + "required": false, + "description": "Comma-separated list of properties to return in the response. Ignored if absent on requested objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma-separated properties to return with their history of previous values. Reduces the max number of goals retrievable in one request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of goal targets that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for, ignored if non-existent.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/goal_targets_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page_limit", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "returned_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of goal targets that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of goal targets that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmLimitsRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmLimitsRecords.json new file mode 100644 index 00000000..2ceaefdb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmLimitsRecords.json @@ -0,0 +1,138 @@ +{ + "name": "GetHubspotCrmLimitsRecords", + "fully_qualified_name": "HubspotCrmApi.GetHubspotCrmLimitsRecords@0.1.0", + "description": "Retrieve limits and usage for records in HubSpot CRM.\n\nUse this tool to obtain detailed information about the limits and current usage of various objects within the HubSpot CRM records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/records'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/records", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmObjectSchemas.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmObjectSchemas.json new file mode 100644 index 00000000..69238fe5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotCrmObjectSchemas.json @@ -0,0 +1,112 @@ +{ + "name": "GetHubspotCrmObjectSchemas", + "fully_qualified_name": "HubspotCrmApi.GetHubspotCrmObjectSchemas@0.1.0", + "description": "Retrieve HubSpot CRM object schemas.\n\nCall this tool to fetch all object schemas from the HubSpot CRM, which can help understand data structure within the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "return_archived_only", + "required": false, + "description": "Set to True to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm-object-schemas/v3/schemas_getAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.custom.sensitive.read.v2", + "crm.schemas.custom.read", + "crm.objects.custom.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDealById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDealById.json new file mode 100644 index 00000000..6b21a281 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDealById.json @@ -0,0 +1,274 @@ +{ + "name": "GetHubspotDealById", + "fully_qualified_name": "HubspotCrmApi.GetHubspotDealById@0.1.0", + "description": "Retrieve HubSpot CRM deal information by Deal ID.\n\nUse this tool to fetch detailed information about a specific deal in HubSpot CRM using the deal's unique ID. The response includes properties specified by the user.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_id", + "required": true, + "description": "The unique identifier of the deal to retrieve from HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be retrieved." + }, + "inferrable": true, + "http_endpoint_parameter_name": "dealId" + }, + { + "name": "return_properties", + "required": false, + "description": "List of properties to be returned in the response. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Specify properties to return with their history of values. Use a comma-separated list.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for. Ignored if associations do not exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the unique property name used to identify the deal. It defaults to an internal object ID if not provided.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-3/{dealId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/{dealId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "dealId", + "tool_parameter_name": "deal_id", + "description": "The unique identifier of the deal to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be retrieved." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDiscounts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDiscounts.json new file mode 100644 index 00000000..08a2f692 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotDiscounts.json @@ -0,0 +1,274 @@ +{ + "name": "GetHubspotDiscounts", + "fully_qualified_name": "HubspotCrmApi.GetHubspotDiscounts@0.1.0", + "description": "Retrieve a page of discounts from HubSpot CRM.\n\nUse this tool to read a page of discounts from HubSpot CRM. You can control the returned data using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The cursor token for pagination. Use the token from the last successfully read resource to fetch the next page.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "returned_discount_properties", + "required": false, + "description": "List of properties to include in the response. Comma-separated, ignored if not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history; reduces number of discounts returned per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of discounts that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Unknown associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only archived discounts, false to include all.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/discounts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "returned_discount_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of discounts that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of discounts that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotLeadsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotLeadsPage.json new file mode 100644 index 00000000..9329a292 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotLeadsPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetHubspotLeadsPage", + "fully_qualified_name": "HubspotCrmApi.GetHubspotLeadsPage@0.1.0", + "description": "Retrieve a page of leads from HubSpot CRM.\n\nThis tool fetches a page of leads from the HubSpot CRM. It allows you to control the properties returned for the leads through query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_limit_per_page", + "required": false, + "description": "Defines the maximum number of leads to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The cursor token to continue retrieving leads from where the last page ended.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "lead_properties_to_return", + "required": false, + "description": "An array of the property names to include in the lead details response. Unavailable properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties whose historical values will be returned. Reduce max leads per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of leads that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for; ignored if non-existent.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "archived_leads_only", + "required": false, + "description": "Return only leads that have been archived. Set to true to include only archived leads, false to exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/leads_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_limit_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "lead_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of leads that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of leads that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "archived_leads_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectById.json new file mode 100644 index 00000000..41714db6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectById.json @@ -0,0 +1,274 @@ +{ + "name": "GetHubspotObjectById", + "fully_qualified_name": "HubspotCrmApi.GetHubspotObjectById@0.1.0", + "description": "Retrieve a HubSpot CRM object using its service ID.\n\nThis tool is used to read a specific HubSpot CRM object identified by its `serviceId`. It can optionally use any unique property value by specifying the `idProperty`. The returned data can be customized with the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_crm_service_id", + "required": true, + "description": "The unique identifier (service ID) of the HubSpot CRM object to retrieve. This can be the internal object ID or any unique property defined by the `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "serviceId" + }, + { + "name": "return_properties_list", + "required": false, + "description": "A list of properties to be returned in the response. Non-existing properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return along with their history for a HubSpot CRM object. Properties should be specified as strings in the list.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types whose associated IDs should be retrieved. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a property with unique values for the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results. False returns non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-162/{serviceId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/{serviceId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties_list", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "serviceId", + "tool_parameter_name": "hubspot_crm_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectsPage.json new file mode 100644 index 00000000..a0cc8f65 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetHubspotObjectsPage.json @@ -0,0 +1,372 @@ +{ + "name": "GetHubspotObjectsPage", + "fully_qualified_name": "HubspotCrmApi.GetHubspotObjectsPage@0.1.0", + "description": "Retrieve a page of HubSpot CRM objects.\n\nUse this tool to read a page of objects from HubSpot CRM. Specify the desired properties through the `properties` query parameter to control the returned data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the type of CRM object to retrieve, such as 'contacts', 'companies', or 'deals'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token used to retrieve the next page of results. Obtained from the `paging.next.after` property of a previous response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "requested_properties", + "required": false, + "description": "List of properties to include in the response. Ignored if not present on the object(s).", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List the properties to return with their historical values in the CRM objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated object types to retrieve associated IDs for. Ignored if associations do not exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_results_only", + "required": false, + "description": "Return only the archived results if set to true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/{objectType}_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_results_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetInvoiceById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetInvoiceById.json new file mode 100644 index 00000000..2f8cc43c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetInvoiceById.json @@ -0,0 +1,274 @@ +{ + "name": "GetInvoiceById", + "fully_qualified_name": "HubspotCrmApi.GetInvoiceById@0.1.0", + "description": "Retrieve invoice details by ID.\n\nFetch invoice information using the unique identifier, `{invoiceId}`. This can include internal object ID or any unique property value specified by the `idProperty` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_identifier", + "required": true, + "description": "The unique identifier for the invoice. This can be the internal object ID or any unique property value as specified by the `id_property`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "invoiceId" + }, + { + "name": "requested_properties", + "required": false, + "description": "List of properties to be returned in the response for the specified invoice. Properties not present on the object will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "historical_properties", + "required": false, + "description": "Comma-separated list of properties to return along with their history of previous values.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for, separated by commas. Ignored if associations don't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_identifier_property", + "required": false, + "description": "The name of a property whose values uniquely identify the invoice object. Specify this to use a unique property other than the internal object ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Specify `True` to return only archived results. `False` returns both archived and non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/invoices/{invoiceId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "historical_properties", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_identifier_property", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "invoiceId", + "tool_parameter_name": "invoice_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLeadById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLeadById.json new file mode 100644 index 00000000..f4ca913b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLeadById.json @@ -0,0 +1,274 @@ +{ + "name": "GetLeadById", + "fully_qualified_name": "HubspotCrmApi.GetLeadById@0.1.0", + "description": "Retrieve a lead by its unique identifier.\n\nThis tool retrieves detailed information about a lead from HubSpot CRM using a unique identifier. It allows filtering of returned data using optional query parameters such as `idProperty` for specifying unique properties and `properties` for controlling which data is returned.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_identifier", + "required": true, + "description": "The unique identifier for the lead. Typically the internal ID, or a unique property value if specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "leadsId" + }, + { + "name": "returned_properties", + "required": false, + "description": "A list of properties to be returned in the response. Only specified properties present on the lead will be included.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "return_properties_with_history", + "required": false, + "description": "A list of properties to return with their history of previous values. Comma-separated values should be used. Ignored if properties are not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for, with non-existent associations ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specifies a unique property name to identify the lead. Overrides default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_archived_results", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/leads/{leadsId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/{leadsId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "returned_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "return_properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "leadsId", + "tool_parameter_name": "lead_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLineItemDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLineItemDetails.json new file mode 100644 index 00000000..0ede029b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetLineItemDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetLineItemDetails", + "fully_qualified_name": "HubspotCrmApi.GetLineItemDetails@0.1.0", + "description": "Retrieve details of a line item by its ID.\n\nThis tool fetches details of a specific line item from HubSpot CRM using its internal ID or any unique property value. Use this tool to access information about a particular line item, specifying any desired properties to control the response.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_item_id", + "required": true, + "description": "The unique ID or property value of the line item to retrieve. This identifies the specific line item in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "lineItemId" + }, + { + "name": "return_properties", + "required": false, + "description": "Comma-separated list of properties to return. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with their value history. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma separated list of object types to retrieve associated IDs for. Non-existent associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_identifier_property", + "required": false, + "description": "Specifies a unique property name to identify the line item in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_return_archived", + "required": false, + "description": "Set to True to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/line_items/{lineItemId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_identifier_property", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "lineItemId", + "tool_parameter_name": "line_item_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetListingDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetListingDetails.json new file mode 100644 index 00000000..5a549ae5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetListingDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetListingDetails", + "fully_qualified_name": "HubspotCrmApi.GetListingDetails@0.1.0", + "description": "Retrieve details of a listing by its ID.\n\nRetrieve information about a listing in HubSpot CRM using a unique listing ID or any specified unique property. Allows control of returned details via query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "unique_listing_id", + "required": true, + "description": "The unique identifier for the listing to be retrieved in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be retrieved." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listingId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "A list of properties to be included in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "An array of property names to return along with their historical values.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for. Comma separated. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property with unique values to identify the object in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. Use false to include non-archived as well.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-420/{listingId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/{listingId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "listingId", + "tool_parameter_name": "unique_listing_id", + "description": "The unique identifier of the listing to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be retrieved." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingDetailsById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingDetailsById.json new file mode 100644 index 00000000..39d4e8c5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingDetailsById.json @@ -0,0 +1,274 @@ +{ + "name": "GetMeetingDetailsById", + "fully_qualified_name": "HubspotCrmApi.GetMeetingDetailsById@0.1.0", + "description": "Retrieve detailed information about a specific meeting.\n\nUse this tool to get information about a meeting using its unique ID. You can specify properties to control what details are returned.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_identifier", + "required": true, + "description": "Unique identifier for the meeting you want to retrieve details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "meetingId" + }, + { + "name": "return_properties", + "required": false, + "description": "A list of properties to be returned in the response. If any specified properties are not present, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma separated list of properties to return with history of values. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "required": false, + "description": "List of object types to fetch associated IDs for. Nonexistent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name whose values uniquely identify the meeting object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_archived", + "required": false, + "description": "Set to true to return only archived meeting results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/meetings/{meetingId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/{meetingId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "meetingId", + "tool_parameter_name": "meeting_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingsPage.json new file mode 100644 index 00000000..2e120427 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMeetingsPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetMeetingsPage", + "fully_qualified_name": "HubspotCrmApi.GetMeetingsPage@0.1.0", + "description": "Retrieve a page of meetings data from HubSpot CRM.\n\nUse this tool to read a page of meetings from HubSpot CRM. You can specify which properties to return using query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of meeting results to display per page. Specify an integer value.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token indicating the last successfully read resource, used for paging through results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "properties", + "required": false, + "description": "A list of property names to return in the response. If any are not present, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to retrieve with their change history. Reduces max meetings returned per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of meetings that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "required": false, + "description": "List object types to retrieve associated IDs for; ignored if associations don't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_results", + "required": false, + "description": "Set to true to return only archived results; false to include active results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/meetings_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of meetings that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of meetings that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMultiplePostalMailObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMultiplePostalMailObjects.json new file mode 100644 index 00000000..32ef1e4e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetMultiplePostalMailObjects.json @@ -0,0 +1,226 @@ +{ + "name": "GetMultiplePostalMailObjects", + "fully_qualified_name": "HubspotCrmApi.GetMultiplePostalMailObjects@0.1.0", + "description": "Retrieve multiple postal mail objects by IDs or unique values.\n\nThis tool retrieves multiple postal mail objects from HubSpot CRM using their internal IDs or unique property values. It is useful when you need to access detailed information on several postal mail entries at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_request_details", + "required": true, + "description": "JSON object including properties with history, unique ID property, inputs, and properties for the postal mail batch retrieval.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "include_archived", + "required": false, + "description": "Set to true to include archived postal mail objects in the results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "include_archived", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_request_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetNoteDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetNoteDetails.json new file mode 100644 index 00000000..99e36310 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetNoteDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetNoteDetails", + "fully_qualified_name": "HubspotCrmApi.GetNoteDetails@0.1.0", + "description": "Retrieve details of a note by its unique ID.\n\nUse this tool to get details of a note from HubSpot CRM using its unique ID. You can specify additional properties to control the returned data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "note_id", + "required": true, + "description": "The unique identifier of the note to retrieve details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "noteId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "A list of property names to return for the note. Non-existing properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "return_properties_with_history", + "required": false, + "description": "List properties to return with their history of previous values. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List the object types to retrieve associated IDs for, separated by commas. Invalid types are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the unique property name to identify the object in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_results_only", + "required": false, + "description": "Set to true to return only archived notes.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/notes/{noteId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/{noteId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "return_properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_results_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "noteId", + "tool_parameter_name": "note_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrderDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrderDetails.json new file mode 100644 index 00000000..4d394fe0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrderDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetOrderDetails", + "fully_qualified_name": "HubspotCrmApi.GetOrderDetails@0.1.0", + "description": "Retrieve details of an order using its ID.\n\nCall this tool to get detailed information about a specific order from the HubSpot CRM by using the order's ID. You can control which properties of the order are returned by specifying them in the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_identifier", + "required": true, + "description": "The unique identifier for the order. This can be the internal object ID or a unique property value specified by the idProperty.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "orderId" + }, + { + "name": "return_properties", + "required": false, + "description": "List the properties to retrieve for the order. Any nonexistent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with their history of previous values. If specified properties are not present, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma separated list of object types to retrieve associated IDs. Non-existent associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a unique property to identify the order. Overrides the default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results for the specified order.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/orders/{orderId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/{orderId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "orderId", + "tool_parameter_name": "order_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrdersPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrdersPage.json new file mode 100644 index 00000000..2e40babe --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetOrdersPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetOrdersPage", + "fully_qualified_name": "HubspotCrmApi.GetOrdersPage@0.1.0", + "description": "Retrieve a page of orders from CRM.\n\nThis tool fetches a page of orders from the CRM. You can specify which properties to include in the results using the query parameters. Use this tool to list orders when needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page", + "required": false, + "description": "The maximum number of orders to display per page. This controls the pagination size.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "Token for pagination, representing the last successfully read resource for fetching the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "order_properties_to_return", + "required": false, + "description": "A list of properties to be included in the order response. Specify as a comma-separated string. Ignored if not present on the objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of order properties to return with their history of previous values. Reduces maximum results per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of orders that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for; ignored if not existing.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "only_return_archived_orders", + "required": false, + "description": "Set to true to return only archived orders. False returns both archived and unarchived orders.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/orders'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "order_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of orders that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of orders that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived_orders", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClientInfo.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClientInfo.json new file mode 100644 index 00000000..f2a56af6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClientInfo.json @@ -0,0 +1,274 @@ +{ + "name": "GetPartnerClientInfo", + "fully_qualified_name": "HubspotCrmApi.GetPartnerClientInfo@0.1.0", + "description": "Retrieve information for a specific partner client.\n\nCall this tool to obtain details about a specific partner client using their unique identifier within the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_client_id", + "required": true, + "description": "The unique identifier for the partner client to retrieve details from HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerClientId" + }, + { + "name": "optional_properties", + "required": false, + "description": "An array of specific properties to retrieve for the partner client. Leave empty to obtain all available properties.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Specify the list of properties to retrieve, including their historical values.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_objects", + "required": false, + "description": "A list of associated object types to include, such as 'contacts' or 'deals'.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "property_id", + "required": false, + "description": "Specify which property should be used as the primary identifier for the partner client. Useful for custom identification schemes.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "include_archived_data", + "required": false, + "description": "Boolean to specify if archived partner client data should be included in the response. Set to true to include archived data.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/partner_clients/{partnerClientId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "optional_properties", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_objects", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_archived_data", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "property_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "partnerClientId", + "tool_parameter_name": "partner_client_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClients.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClients.json new file mode 100644 index 00000000..6850afa2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerClients.json @@ -0,0 +1,274 @@ +{ + "name": "GetPartnerClients", + "fully_qualified_name": "HubspotCrmApi.GetPartnerClients@0.1.0", + "description": "Retrieve partner clients from HubSpot CRM.\n\nThis tool retrieves a list of partner clients from the HubSpot CRM. It should be called when users need to access details about their partner clients stored in HubSpot's CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "retrieval_limit", + "required": false, + "description": "Specifies the maximum number of partner clients to retrieve from the HubSpot CRM in a single call.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "pagination_cursor", + "required": false, + "description": "A string token to retrieve the next page of partner clients, obtained from a previous response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "client_properties", + "required": false, + "description": "A list of specific client properties to retrieve, such as 'name', 'email', etc.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List property names to retrieve along with their historical versions. Each property should be specified as a string.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "include_associations", + "required": false, + "description": "List of associations to include in the response. Specify names of associations as strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "include_archived", + "required": false, + "description": "Set to true to include archived partner clients, false to exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/partner_clients'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "retrieval_limit", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "client_properties", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "include_associations", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_archived", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServiceDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServiceDetails.json new file mode 100644 index 00000000..105ce186 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServiceDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetPartnerServiceDetails", + "fully_qualified_name": "HubspotCrmApi.GetPartnerServiceDetails@0.1.0", + "description": "Retrieve details of a partner service by ID.\n\nUse this tool to get information about a specific partner service object using its ID. You can specify which properties to return or use the default settings to retrieve comprehensive details.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_service_id", + "required": true, + "description": "The unique ID of the partner service object to retrieve. This can be the internal object ID or a unique property value as specified by the `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerServiceId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "A list of property names to return for the partner service. Any missing properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties whose historical values should be returned for the partner service object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_ids", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs. Non-existent associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property to identify the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results, false otherwise.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/partner_services/{partnerServiceId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "partnerServiceId", + "tool_parameter_name": "partner_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServices.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServices.json new file mode 100644 index 00000000..8ca0eff2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPartnerServices.json @@ -0,0 +1,274 @@ +{ + "name": "GetPartnerServices", + "fully_qualified_name": "HubspotCrmApi.GetPartnerServices@0.1.0", + "description": "Retrieve a page of partner services.\n\nFetch a list of partner services from the HubSpot CRM. The returned data can be customized using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of results to display per page. Must be an integer value.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_after", + "required": false, + "description": "The cursor token to retrieve the next page of results in a paged response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "return_properties", + "required": false, + "description": "List of properties to return in the response. Ignored if not present on requested objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of property names to fetch with their history. Reduces max number of results per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of partner services that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Ignored if associations do not exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/partner_services'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_after", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of partner services that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of partner services that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentDetails.json new file mode 100644 index 00000000..4a865631 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentDetails.json @@ -0,0 +1,270 @@ +{ + "name": "GetPaymentDetails", + "fully_qualified_name": "HubspotCrmApi.GetPaymentDetails@0.1.0", + "description": "Retrieve details of a payment object by ID.\n\nUse this tool to obtain information about a specific payment object in the CRM by providing its ID. The ID can be the internal object ID or another unique property value. You can control the properties returned using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "payment_identifier", + "required": true, + "description": "The unique identifier for the payment object. This can be the internal object ID or a unique property value.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "paymentsId" + }, + { + "name": "requested_properties", + "required": false, + "description": "A list of properties to return in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their historical values. Unavailable properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "required": false, + "description": "A list of object types to retrieve associated IDs for this payment. Non-existent associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property uniquely identifying the payment object type. Used to specify a unique property other than the internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/payments/{paymentsId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/payments/{paymentsId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "paymentsId", + "tool_parameter_name": "payment_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentRecords.json new file mode 100644 index 00000000..f9e04219 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPaymentRecords.json @@ -0,0 +1,270 @@ +{ + "name": "GetPaymentRecords", + "fully_qualified_name": "HubspotCrmApi.GetPaymentRecords@0.1.0", + "description": "Retrieve a page of payment records from HubSpot CRM.\n\nUse this tool to get a list of payment records from the HubSpot CRM. You can specify which properties to include in the results by using query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page_limit", + "required": false, + "description": "Maximum number of payment records to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_token_after", + "required": false, + "description": "The cursor token from the last read resource to fetch the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "payment_properties_to_include", + "required": false, + "description": "A list of property names to include in the response. Specified properties not present on the requested objects will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of property names to return with their historical values. Ignored if not present on objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. If specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "archived_results_only", + "required": false, + "description": "Indicate if only archived payment records should be returned. Set to true to filter for archived records only.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/payments'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/payments", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page_limit", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_token_after", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "payment_properties_to_include", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "archived_results_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineAuditLog.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineAuditLog.json new file mode 100644 index 00000000..d3dfe6ef --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineAuditLog.json @@ -0,0 +1,219 @@ +{ + "name": "GetPipelineAuditLog", + "fully_qualified_name": "HubspotCrmApi.GetPipelineAuditLog@0.1.0", + "description": "Retrieves the audit log for a specified CRM pipeline.\n\nCall this tool to obtain a list of all changes made to a specified pipeline in HubSpot CRM, in reverse chronological order.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The type of CRM object for which audit logs are being retrieved, such as 'deals' or 'contacts'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique identifier for the pipeline to fetch the audit log from. This ID is used to target a specific pipeline within HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/audit_getAudit'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/audit", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineById.json new file mode 100644 index 00000000..0830d470 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineById.json @@ -0,0 +1,219 @@ +{ + "name": "GetPipelineById", + "fully_qualified_name": "HubspotCrmApi.GetPipelineById@0.1.0", + "description": "Retrieve a single CRM pipeline by its unique ID.\n\nUse this tool to get detailed information about a specific pipeline in the HubSpot CRM by providing its unique identifier and object type.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_in_crm", + "required": true, + "description": "Specify the type of CRM object, such as 'deals' or 'tickets', whose pipeline you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_unique_id", + "required": true, + "description": "The unique identifier for the CRM pipeline to retrieve details. This value is required to fetch the specific pipeline information.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type_in_crm", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_unique_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageAudit.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageAudit.json new file mode 100644 index 00000000..faaf303b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageAudit.json @@ -0,0 +1,252 @@ +{ + "name": "GetPipelineStageAudit", + "fully_qualified_name": "HubspotCrmApi.GetPipelineStageAudit@0.1.0", + "description": "Retrieve audit logs for a specific pipeline stage.\n\nThis tool retrieves a reverse chronological list of all mutations that have occurred on a specified pipeline stage within HubSpot CRM. It should be called when you need to audit changes or track the history of a pipeline stage.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The CRM object type to query for the pipeline stage, such as 'deals', 'tickets', or 'contacts'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "stage_identifier", + "required": true, + "description": "The unique identifier of the pipeline stage to audit. Use this to specify which stage's mutations you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "stageId" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique identifier for the pipeline to retrieve stage audit logs from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit_getAudit'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}/audit", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "stageId", + "tool_parameter_name": "stage_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageById.json new file mode 100644 index 00000000..9c34b99e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStageById.json @@ -0,0 +1,252 @@ +{ + "name": "GetPipelineStageById", + "fully_qualified_name": "HubspotCrmApi.GetPipelineStageById@0.1.0", + "description": "Retrieve a specific pipeline stage by its ID.\n\nUse this tool to get details of a particular stage within a pipeline in HubSpot CRM, identified by its unique stage ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The type of CRM object, such as 'deals' or 'tickets', to access the pipeline stage for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique identifier for the pipeline in HubSpot CRM. Use this ID to specify which pipeline the stage belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "stage_id", + "required": true, + "description": "Unique ID of the pipeline stage to retrieve details from HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "stageId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "stageId", + "tool_parameter_name": "stage_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStages.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStages.json new file mode 100644 index 00000000..4eeb4123 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPipelineStages.json @@ -0,0 +1,219 @@ +{ + "name": "GetPipelineStages", + "fully_qualified_name": "HubspotCrmApi.GetPipelineStages@0.1.0", + "description": "Retrieve all stages of a specified pipeline.\n\nUse this tool to get all the stages associated with a specific pipeline in HubSpot CRM. It requires specifying the pipeline through its ID and object type.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the type of CRM object, such as deals or tickets, associated with the pipeline.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The ID of the pipeline to retrieve stages for. Must be a valid pipeline ID in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/pipelines/{objectType}/{pipelineId}/stages_getAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailById.json new file mode 100644 index 00000000..04594d2c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailById.json @@ -0,0 +1,274 @@ +{ + "name": "GetPostalMailById", + "fully_qualified_name": "HubspotCrmApi.GetPostalMailById@0.1.0", + "description": "Retrieve details of a postal mail record by ID from HubSpot CRM.\n\nUse this tool to get detailed information about a specific postal mail record in HubSpot CRM by providing the postal mail ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_id", + "required": true, + "description": "The unique identifier for the postal mail record to retrieve details from HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "postalMailId" + }, + { + "name": "specified_properties", + "required": false, + "description": "A list of specific postal mail properties to retrieve. Leave empty to get all properties.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of property names for which history should be returned. Accepts an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "related_objects_associations", + "required": false, + "description": "List of string identifiers representing related objects to retrieve alongside the postal mail record.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "identify_by_id_property", + "required": false, + "description": "Specifies which property will be used as the primary identifier. Accepts a string that represents the property within the postal mail object that should be used to identify and retrieve details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "include_archived", + "required": false, + "description": "Set to true to include archived postal mail records in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/postal_mail/{postalMailId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "specified_properties", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "related_objects_associations", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_archived", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "identify_by_id_property", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "postalMailId", + "tool_parameter_name": "postal_mail_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailRecords.json new file mode 100644 index 00000000..49d3e1d4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPostalMailRecords.json @@ -0,0 +1,274 @@ +{ + "name": "GetPostalMailRecords", + "fully_qualified_name": "HubspotCrmApi.GetPostalMailRecords@0.1.0", + "description": "Retrieve postal mail records from the CRM.\n\nUse this tool to access postal mail records from the CRM. It is helpful for obtaining stored postal mail information.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_records", + "required": false, + "description": "The maximum number of postal mail records to return. Must be an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "pagination_cursor_after", + "required": false, + "description": "A cursor for pagination. Use it to retrieve the next set of postal mail records after a specific point.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "retrieve_specific_properties", + "required": false, + "description": "List of specific properties to include in the response. Provide property names as strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "include_properties_history", + "required": false, + "description": "Specify property names to include their history in the records. Use an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_objects", + "required": false, + "description": "A list of object types to retrieve associations for, such as contacts or companies.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "include_archived_records", + "required": false, + "description": "Include archived postal mail records if true; exclude them if false.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/postal_mail_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_records", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor_after", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "retrieve_specific_properties", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "include_properties_history", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_objects", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_archived_records", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductDetailsById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductDetailsById.json new file mode 100644 index 00000000..a34adccc --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductDetailsById.json @@ -0,0 +1,274 @@ +{ + "name": "GetProductDetailsById", + "fully_qualified_name": "HubspotCrmApi.GetProductDetailsById@0.1.0", + "description": "Retrieve product details using a product ID.\n\nThis tool retrieves the details of a product in HubSpot CRM using its product ID. It can also use any unique property specified by the `idProperty` query parameter. Use this tool to obtain specific product information from HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "A unique identifier for the product. Can be the internal ID or any unique property as specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "productId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "A list of product properties to include in the response. Any missing properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List properties to return with their history of past values, separated by commas. Ignored if not present in object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Any non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the property name with unique values for the product object, instead of default productId.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results. If false, only non-archived results are returned.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/products/{productId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/{productId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "productId", + "tool_parameter_name": "product_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductsPage.json new file mode 100644 index 00000000..7971b7ef --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetProductsPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetProductsPage", + "fully_qualified_name": "HubspotCrmApi.GetProductsPage@0.1.0", + "description": "Fetch a page of products from HubSpot CRM.\n\nUse this tool to retrieve a page of products from the HubSpot CRM. You can control the returned product details using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The cursor token for the last read resource, used for paged responses.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "product_properties_to_return", + "required": false, + "description": "Comma-separated properties to include in the response. Any non-existent properties for the requested objects will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "include_properties_with_history", + "required": false, + "description": "Comma separated list of product properties to include along with their history. Reduces maximum results per request if used.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of products that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Provide a comma-separated list of object types to retrieve associated IDs for. Ignored if not existing.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/products_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "product_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "include_properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of products that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of products that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPropertyValidationRules.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPropertyValidationRules.json new file mode 100644 index 00000000..7e6102b8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetPropertyValidationRules.json @@ -0,0 +1,186 @@ +{ + "name": "GetPropertyValidationRules", + "fully_qualified_name": "HubspotCrmApi.GetPropertyValidationRules@0.1.0", + "description": "Retrieve validation rules for properties of a given object in HubSpot CRM.\n\nUse this tool to get detailed validation rules for all properties associated with a specified object type ID in HubSpot CRM. This can be helpful for understanding constraints and rules applied to object properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_id", + "required": true, + "description": "The unique identifier for the object type in HubSpot CRM whose property validation rules you want to retrieve. This is a string value.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectTypeId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/property-validations/{objectTypeId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/property-validations/{objectTypeId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectTypeId", + "tool_parameter_name": "object_type_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuoteById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuoteById.json new file mode 100644 index 00000000..47aa7610 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuoteById.json @@ -0,0 +1,274 @@ +{ + "name": "GetQuoteById", + "fully_qualified_name": "HubspotCrmApi.GetQuoteById@0.1.0", + "description": "Retrieve details of a quote by its ID.\n\nFetches a quote from HubSpot CRM using its ID or a unique property value. Allows control over returned properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_id", + "required": true, + "description": "The ID or unique property value of the quote to be retrieved. This identifies the specific quote in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "quoteId" + }, + { + "name": "included_properties", + "required": false, + "description": "List of properties to be returned in the response. If a property is not present, it will be ignored. Input should be an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma-separated list of properties to return with their value history. Ignored if not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for; ignored if non-existent.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name with unique values for the quote object, used in the retrieval process.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_return_archived", + "required": false, + "description": "Set to true to only return results that have been archived for the quote.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/quotes/{quoteId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/{quoteId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "included_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "quoteId", + "tool_parameter_name": "quote_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuotesPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuotesPage.json new file mode 100644 index 00000000..2fd0874b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetQuotesPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetQuotesPage", + "fully_qualified_name": "HubspotCrmApi.GetQuotesPage@0.1.0", + "description": "Retrieve a page of quotes with specified properties.\n\nUse this tool to read a page of quotes from HubSpot CRM. You can control the details returned by specifying properties through query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_limit", + "required": false, + "description": "The maximum number of quote results to display per page. Accepts an integer value.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token to identify the last read resource for pagination. Use it to get the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "quote_properties_to_return", + "required": false, + "description": "List the properties to retrieve for each quote. Only present properties will be returned.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history. Reduces max quotes per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of quotes that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_ids_for_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Non-existing associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results. False to include active results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/quotes_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_limit", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "quote_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of quotes that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of quotes that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_ids_for_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetRecordListMemberships.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetRecordListMemberships.json new file mode 100644 index 00000000..eef723a2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetRecordListMemberships.json @@ -0,0 +1,142 @@ +{ + "name": "GetRecordListMemberships", + "fully_qualified_name": "HubspotCrmApi.GetRecordListMemberships@0.1.0", + "description": "Retrieve lists a CRM record is a member of.\n\nThis tool retrieves the lists that a specified CRM record is a member of, helping track its association with different lists.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_id", + "required": true, + "description": "Specify the object type ID of the record to retrieve its list memberships.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Object type id of the record" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectTypeId" + }, + { + "name": "record_id", + "required": true, + "description": "The unique identifier of the CRM record whose list memberships you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the record" + }, + "inferrable": true, + "http_endpoint_parameter_name": "recordId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships_getLists'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/records/{objectTypeId}/{recordId}/memberships", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectTypeId", + "tool_parameter_name": "object_type_id", + "description": "Object type id of the record", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Object type id of the record" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "recordId", + "tool_parameter_name": "record_id", + "description": "Id of the record", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the record" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionData.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionData.json new file mode 100644 index 00000000..3b3aa0e0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionData.json @@ -0,0 +1,274 @@ +{ + "name": "GetSubscriptionData", + "fully_qualified_name": "HubspotCrmApi.GetSubscriptionData@0.1.0", + "description": "Fetch a page of subscription data from HubSpot CRM.\n\nThis tool retrieves a page of subscription data from HubSpot CRM. Use this tool to access subscription information, with options to control the returned data via query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "The maximum number of subscription results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token indicating the last successfully read resource, used for pagination in subsequent requests.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "requested_properties", + "required": false, + "description": "A list of property names to be included in the response. If a specified property is not present in the requested objects, it will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of property names for retrieving their values and history. Reduces max subscriptions per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of subscriptions that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for. Ignored if not existing.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only archived results. Set to false to include active results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/subscriptions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.subscriptions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of subscriptions that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of subscriptions that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionDetails.json new file mode 100644 index 00000000..6f752e76 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetSubscriptionDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetSubscriptionDetails", + "fully_qualified_name": "HubspotCrmApi.GetSubscriptionDetails@0.1.0", + "description": "Retrieve details of a specific subscription by ID.\n\nThis tool is used to fetch the details of a subscription object identified by its subscription ID. It allows control over what is returned using query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_id", + "required": true, + "description": "The unique identifier for the subscription object to be retrieved. This can be the internal object ID or a unique property value specified by the idProperty query param.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriptionId" + }, + { + "name": "requested_properties", + "required": false, + "description": "List of properties to return in the response. Properties not present in the object will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of property names whose values and history are to be retrieved for the subscription. Properties not present on the object will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "association_types_to_retrieve", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Non-existing associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name used to uniquely identify the subscription object instead of the default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_archived_results", + "required": false, + "description": "Set to true to return only archived items, false to exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/subscriptions/{subscriptionId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.subscriptions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "association_types_to_retrieve", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriptionId", + "tool_parameter_name": "subscription_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaskDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaskDetails.json new file mode 100644 index 00000000..fda3944b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaskDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetTaskDetails", + "fully_qualified_name": "HubspotCrmApi.GetTaskDetails@0.1.0", + "description": "Retrieve HubSpot CRM task details using task ID.\n\nCall this tool to get detailed information about a specific task in HubSpot CRM by providing the task ID. Modify the returned data using query parameters if needed.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_id", + "required": true, + "description": "The unique identifier for the HubSpot CRM task. Retrieve specific task details using this ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "taskId" + }, + { + "name": "requested_properties", + "required": false, + "description": "List of properties to return for the task. Only available properties will be returned.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their previous values. Comma-separated and ignored if not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for. Returns IDs of related objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of the property with unique values to identify the task.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/tasks/{taskId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/{taskId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "taskId", + "tool_parameter_name": "task_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTasksList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTasksList.json new file mode 100644 index 00000000..d89557c6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTasksList.json @@ -0,0 +1,274 @@ +{ + "name": "GetTasksList", + "fully_qualified_name": "HubspotCrmApi.GetTasksList@0.1.0", + "description": "Retrieve a page of tasks from HubSpot CRM.\n\nUse this tool to read a page of tasks from HubSpot CRM. Specify which properties to return using the 'properties' query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of task results to retrieve per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token indicating the last resource read, used for pagination to continue from the next page.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "task_properties_to_return", + "required": false, + "description": "A list of property names to include in the response. Ignored if not present on the tasks.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Specify properties to return along with their full change history. Note: This reduces the number of tasks per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tasks that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "required": false, + "description": "A list of object types to retrieve associated IDs for. If specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived tasks; false for active tasks.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/tasks_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "task_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tasks that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of tasks that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxDetailsById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxDetailsById.json new file mode 100644 index 00000000..4f2333e2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxDetailsById.json @@ -0,0 +1,274 @@ +{ + "name": "GetTaxDetailsById", + "fully_qualified_name": "HubspotCrmApi.GetTaxDetailsById@0.1.0", + "description": "Retrieve tax details using a specific tax ID.\n\nThis tool retrieves tax object details from HubSpot CRM by specifying a tax ID. The ID can be the internal object ID or any unique property value as set by the `idProperty` query parameter. Useful for accessing specific tax information within HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_id", + "required": true, + "description": "The unique ID or property value for the tax object. Default is the internal object ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "taxId" + }, + { + "name": "return_properties", + "required": false, + "description": "Comma-separated list of properties to be included in the response. Non-existing properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List properties to return with their historical values. Use a comma-separated format.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property whose values are unique for the tax object. Use this to specify an alternative ID property instead of the default internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results. False returns non-archived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/taxes/{taxId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/{taxId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "taxId", + "tool_parameter_name": "tax_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxesPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxesPage.json new file mode 100644 index 00000000..bb51d8e4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTaxesPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetTaxesPage", + "fully_qualified_name": "HubspotCrmApi.GetTaxesPage@0.1.0", + "description": "Retrieve a page of tax details from HubSpot CRM.\n\nUse this tool to read a specific page of tax details from the HubSpot CRM. You can control which properties are returned by specifying them in the query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of tax results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token for the paging cursor from the last read resource for fetching the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "included_properties", + "required": false, + "description": "List the properties to be returned for each tax. Specify as an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Specify properties to return with their history. Reduces max number of taxes per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of taxes that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associated_object_ids", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "archived_only", + "required": false, + "description": "Set to true to return only archived tax results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/taxes_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "included_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of taxes that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of taxes that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associated_object_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTicketDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTicketDetails.json new file mode 100644 index 00000000..82d27aa6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTicketDetails.json @@ -0,0 +1,274 @@ +{ + "name": "GetTicketDetails", + "fully_qualified_name": "HubspotCrmApi.GetTicketDetails@0.1.0", + "description": "Retrieve details of a ticket by ID from HubSpot CRM.\n\nThis tool retrieves detailed information about a specific ticket in HubSpot CRM identified by `ticketId`. It's useful for obtaining comprehensive ticket data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The ID of the ticket to retrieve from HubSpot CRM. This can be the internal object ID or a unique property value based on the `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticketId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "A list of properties to include in the response. Properties not present will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties with their history to be returned. If properties are missing, they'll be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types for retrieving associated IDs. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_identifier_property", + "required": false, + "description": "Specifies the property name with unique values for identifying the ticket.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_return_archived", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/tickets/{ticketId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/{ticketId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_identifier_property", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "ticketId", + "tool_parameter_name": "ticket_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTranscriptById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTranscriptById.json new file mode 100644 index 00000000..e73c8d17 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetTranscriptById.json @@ -0,0 +1,109 @@ +{ + "name": "GetTranscriptById", + "fully_qualified_name": "HubspotCrmApi.GetTranscriptById@0.1.0", + "description": "Retrieve call transcript details by transcript ID.\n\nThis tool retrieves details of a call transcript for a given transcript ID in the HubSpot CRM. Use it to access specific call records and transcript data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "transcript_id", + "required": true, + "description": "The unique identifier of the call transcript to retrieve from HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "transcriptId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/extensions/calling/transcripts/{transcriptId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.extensions_calling_transcripts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/extensions/calling/transcripts/{transcriptId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "transcriptId", + "tool_parameter_name": "transcript_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUserInfo.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUserInfo.json new file mode 100644 index 00000000..3b581add --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUserInfo.json @@ -0,0 +1,274 @@ +{ + "name": "GetUserInfo", + "fully_qualified_name": "HubspotCrmApi.GetUserInfo@0.1.0", + "description": "Retrieves user information from HubSpot CRM using user ID.\n\nUse this tool to fetch detailed information about a user in HubSpot CRM by specifying the user's unique ID. You can control the returned data by using specific query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_identifier", + "required": true, + "description": "The unique identifier for the user. This can be the internal object ID or a property value specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "userId" + }, + { + "name": "properties_to_return", + "required": false, + "description": "A list of user properties to return in the response. If any specified properties are not present, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of property names to return with their value history for the user.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "object_associations", + "required": false, + "description": "Comma separated list of object types to retrieve associated IDs for in the user info response.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property with unique values to identify the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. Set to false to exclude archived items from results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/users/{userId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/{userId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "object_associations", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "userId", + "tool_parameter_name": "user_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUsersPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUsersPage.json new file mode 100644 index 00000000..a1407928 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/GetUsersPage.json @@ -0,0 +1,274 @@ +{ + "name": "GetUsersPage", + "fully_qualified_name": "HubspotCrmApi.GetUsersPage@0.1.0", + "description": "Fetch a page of users from the CRM.\n\nUse this tool to read a page of users from the HubSpot CRM. You can control which user properties are returned by using the appropriate query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The paging cursor token from the last read resource, used to fetch next set of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "user_properties", + "required": false, + "description": "A list of user property names to include in the response. Any non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history. Reduces the maximum number of users per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of users that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types for which associated IDs should be retrieved. If specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/users'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "user_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of users that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of users that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotBatchArchiveAssociations.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotBatchArchiveAssociations.json new file mode 100644 index 00000000..e6e90791 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotBatchArchiveAssociations.json @@ -0,0 +1,343 @@ +{ + "name": "HubspotBatchArchiveAssociations", + "fully_qualified_name": "HubspotCrmApi.HubspotBatchArchiveAssociations@0.1.0", + "description": "Batch archive associations in HubSpot CRM.\n\nThis tool is used to archive multiple associations between specified object types in HubSpot CRM in a single batch operation. Call this tool when you need to efficiently remove associations between records, such as contacts and companies, or deals and tickets, in bulk.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_object_type", + "required": true, + "description": "The type of the source object for the associations to be archived (e.g., 'contacts', 'companies').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "fromObjectType" + }, + { + "name": "target_object_type", + "required": true, + "description": "Specify the type of the object to which the association is directed, e.g., 'company', 'deal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "association_batches", + "required": true, + "description": "JSON array containing objects with 'from', 'to', and 'type' for each association to archive. Each object in the array should specify the 'from' and 'to' object IDs and the type of association as strings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "fromObjectType", + "tool_parameter_name": "source_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "association_batches", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"from\",\n \"to\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"to\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"example\": {\n \"from\": {\n \"id\": \"53628\"\n },\n \"to\": {\n \"id\": \"12726\"\n },\n \"type\": \"contact_to_company\"\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmSearchObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmSearchObjects.json new file mode 100644 index 00000000..40d0a2df --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmSearchObjects.json @@ -0,0 +1,335 @@ +{ + "name": "HubspotCrmSearchObjects", + "fully_qualified_name": "HubspotCrmApi.HubspotCrmSearchObjects@0.1.0", + "description": "Search and retrieve objects from HubSpot CRM.\n\nUse this tool to perform a search for specific objects within the HubSpot CRM. It should be called when you need to find and retrieve detailed information about CRM objects based on search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_request", + "required": true, + "description": "JSON containing search details. Includes query, limit, sorts, properties, and filterGroups for HubSpot CRM object search.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmUpsertRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmUpsertRecords.json new file mode 100644 index 00000000..a90279e7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotCrmUpsertRecords.json @@ -0,0 +1,193 @@ +{ + "name": "HubspotCrmUpsertRecords", + "fully_qualified_name": "HubspotCrmApi.HubspotCrmUpsertRecords@0.1.0", + "description": "Create or update unique records in HubSpot CRM.\n\nThis tool allows for the creation or update of CRM records in HubSpot, identified by a unique property. Use it when you need to batch upload or modify records based on a unique identifier.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "records_to_upsert", + "required": true, + "description": "JSON array containing records to upsert, each with unique properties: `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "records_to_upsert", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotSearchCustomObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotSearchCustomObjects.json new file mode 100644 index 00000000..d54d6273 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotSearchCustomObjects.json @@ -0,0 +1,335 @@ +{ + "name": "HubspotSearchCustomObjects", + "fully_qualified_name": "HubspotCrmApi.HubspotSearchCustomObjects@0.1.0", + "description": "Search for custom objects in HubSpot CRM.\n\nUse this tool to search for custom objects within the HubSpot CRM. It should be called when you need to retrieve specific custom object data based on certain criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_request_body", + "required": true, + "description": "JSON object containing search query, limit, paging token, sorting order, properties to include, and filter groups for HubSpot CRM custom object search.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotUpdateListing.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotUpdateListing.json new file mode 100644 index 00000000..96cc2438 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/HubspotUpdateListing.json @@ -0,0 +1,193 @@ +{ + "name": "HubspotUpdateListing", + "fully_qualified_name": "HubspotCrmApi.HubspotUpdateListing@0.1.0", + "description": "Update specific details of a HubSpot listing.\n\nThis tool performs a partial update of a HubSpot listing identified by `listingId` or a unique property specified by `idProperty`. It overwrites provided property values, with errors for read-only or non-existent properties. Clear values by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "listing_id", + "required": true, + "description": "The unique identifier of the listing to update in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be updated." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listingId" + }, + { + "name": "listing_update_properties", + "required": true, + "description": "JSON object of key-value pairs representing properties of the listing to update. Clear values by passing an empty string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property for this object, used for identification.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/0-420/{listingId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/{listingId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "listingId", + "tool_parameter_name": "listing_id", + "description": "The unique identifier of the listing to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be updated." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "listing_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListCrmEntries.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListCrmEntries.json new file mode 100644 index 00000000..d9252eaa --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListCrmEntries.json @@ -0,0 +1,274 @@ +{ + "name": "ListCrmEntries", + "fully_qualified_name": "HubspotCrmApi.ListCrmEntries@0.1.0", + "description": "Retrieve a page of CRM listings with specified properties.\n\nThis tool fetches a page of CRM listings from HubSpot, allowing the user to control which properties are returned via query parameters. Use this to obtain customer records and details from the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of CRM listing results to display per page. This controls pagination size.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The cursor token for fetching the next page of CRM listings.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "properties_to_return", + "required": false, + "description": "Comma-separated list of properties to include in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "include_properties_with_history", + "required": false, + "description": "List the properties whose values along with their history should be returned. Reduces the number of listings per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of listings that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for, such as 'contacts' or 'deals'. Ignored if not existent.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "include_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. False to exclude archived entries.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-420'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "include_properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of listings that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of listings that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerClientAssociations.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerClientAssociations.json new file mode 100644 index 00000000..8afd8805 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerClientAssociations.json @@ -0,0 +1,241 @@ +{ + "name": "ListPartnerClientAssociations", + "fully_qualified_name": "HubspotCrmApi.ListPartnerClientAssociations@0.1.0", + "description": "Retrieve associations of a partner client by type.\n\nUse this tool to list associations for a specific partner client in HubSpot CRM. It helps in retrieving related objects based on the specified type.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_client_id", + "required": true, + "description": "The unique identifier for the partner client whose associations are to be retrieved. It is required and must be a valid string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerClientId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of object to which the partner client is associated. Specify using a string value representing the object type, such as 'contact' or 'deal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token used for pagination to fetch the next set of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page. Use an integer value.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "include_family_associations", + "required": false, + "description": "Indicate whether to include family associations in the response. Set to true to include them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFA" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 500, + "documentation_urls": [] + }, + { + "name": "includeFA", + "tool_parameter_name": "include_family_associations", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "partnerClientId", + "tool_parameter_name": "partner_client_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerServiceAssociations.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerServiceAssociations.json new file mode 100644 index 00000000..76b3fa86 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ListPartnerServiceAssociations.json @@ -0,0 +1,241 @@ +{ + "name": "ListPartnerServiceAssociations", + "fully_qualified_name": "HubspotCrmApi.ListPartnerServiceAssociations@0.1.0", + "description": "Retrieve associations of a partner service by type.\n\nThis tool retrieves a list of associations for a specified partner service in HubSpot CRM based on the provided type. It should be called when you need to explore relationships connected to a partner service, filtering by specific object types.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_service_id", + "required": true, + "description": "The unique identifier of the partner service to retrieve associations for. This ID is required.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerServiceId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of object to filter associations by, such as contacts, companies, etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token to continue paginated results from the last read resource.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page. This determines the page size for the response.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "include_associated_fields", + "required": false, + "description": "Set to true to include associated fields in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFA" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 500, + "documentation_urls": [] + }, + { + "name": "includeFA", + "tool_parameter_name": "include_associated_fields", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "partnerServiceId", + "tool_parameter_name": "partner_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ManageDealSplits.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ManageDealSplits.json new file mode 100644 index 00000000..0baa7913 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ManageDealSplits.json @@ -0,0 +1,195 @@ +{ + "name": "ManageDealSplits", + "fully_qualified_name": "HubspotCrmApi.ManageDealSplits@0.1.0", + "description": "Create or replace deal splits for specific deals.\n\nThis tool is used to create or update deal splits for the specified deal IDs. The deal split percentages must add up to 100% and can have up to 8 decimal places. It is useful for managing deal contributions among different stakeholders.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_splits_data", + "required": true, + "description": "A JSON object containing an array of deal objects, each with an ID and a splits array. Each split should include an ownerId and a percentage. Percentages within each deal must sum up to 1.0 (100%).", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "splits": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "percentage": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "ownerId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/deals/splits/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.dealsplits.read_write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/deals/splits/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deal_splits_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "splits": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "percentage": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "ownerId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "id": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"splits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"splits\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"ownerId\",\n \"percentage\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"percentage\": {\n \"type\": \"number\"\n },\n \"ownerId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n },\n \"id\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeCompanyRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeCompanyRecords.json new file mode 100644 index 00000000..da025715 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeCompanyRecords.json @@ -0,0 +1,142 @@ +{ + "name": "MergeCompanyRecords", + "fully_qualified_name": "HubspotCrmApi.MergeCompanyRecords@0.1.0", + "description": "Merge two company records in HubSpot CRM.\n\nUse this tool to merge two company records into a single record in HubSpot CRM, ensuring data consistency.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_id_to_merge", + "required": true, + "description": "The ID of the company to merge into the primary company.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the company to merge into the primary." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectIdToMerge" + }, + { + "name": "primary_company_id", + "required": true, + "description": "The ID of the primary company into which the other company will be merged.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the primary company, which the other will merge into." + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryObjectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/merge_merge'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/merge", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectIdToMerge", + "tool_parameter_name": "company_id_to_merge", + "description": "The ID of the company to merge into the primary.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the company to merge into the primary." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryObjectId", + "tool_parameter_name": "primary_company_id", + "description": "The ID of the primary company, which the other will merge into.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the primary company, which the other will merge into." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\",\n \"description\": \"The ID of the company to merge into the primary.\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the primary company, which the other will merge into.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeContacts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeContacts.json new file mode 100644 index 00000000..a0ff69b5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeContacts.json @@ -0,0 +1,142 @@ +{ + "name": "MergeContacts", + "fully_qualified_name": "HubspotCrmApi.MergeContacts@0.1.0", + "description": "Merges two contacts into one in HubSpot CRM.\n\nUse this tool to merge two existing contacts within HubSpot CRM. It consolidates contact information, ensuring that no duplicate entries exist for the same individual.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id_to_merge", + "required": true, + "description": "The ID of the contact object that will be merged into the primary contact.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectIdToMerge" + }, + { + "name": "primary_contact_id", + "required": true, + "description": "The unique identifier of the primary contact that will remain after merging. This contact's information will be retained.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryObjectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/merge'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/merge", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectIdToMerge", + "tool_parameter_name": "contact_id_to_merge", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryObjectId", + "tool_parameter_name": "primary_contact_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeDeals.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeDeals.json new file mode 100644 index 00000000..de766c41 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeDeals.json @@ -0,0 +1,142 @@ +{ + "name": "MergeDeals", + "fully_qualified_name": "HubspotCrmApi.MergeDeals@0.1.0", + "description": "Combine two deals into a single unified deal in HubSpot CRM.\n\nUse this tool to merge two deals of the same type into one within HubSpot CRM. It is useful when consolidating duplicate or related deals into a single entry.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_id_to_merge", + "required": true, + "description": "The ID of the deal to be merged into the primary deal.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectIdToMerge" + }, + { + "name": "primary_deal_id", + "required": true, + "description": "The ID of the primary deal that will remain after merging.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryObjectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/merge_merge'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/merge", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectIdToMerge", + "tool_parameter_name": "deal_id_to_merge", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryObjectId", + "tool_parameter_name": "primary_deal_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotCrmObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotCrmObjects.json new file mode 100644 index 00000000..9ead1066 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotCrmObjects.json @@ -0,0 +1,240 @@ +{ + "name": "MergeHubspotCrmObjects", + "fully_qualified_name": "HubspotCrmApi.MergeHubspotCrmObjects@0.1.0", + "description": "Merge two HubSpot CRM objects into a single entity.\n\nUse this tool to merge two CRM objects of a specified type within HubSpot. It combines duplicate records into a single object, streamlining the data management process.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_object_type", + "required": true, + "description": "Specify the type of HubSpot CRM object to merge, such as contact, company, or deal.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_id_to_merge", + "required": true, + "description": "The ID of the HubSpot CRM object to be merged into the primary object. This should be a string identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectIdToMerge" + }, + { + "name": "primary_object_id", + "required": true, + "description": "The ID of the primary HubSpot CRM object to retain post-merge.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryObjectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/merge'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/merge", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "hubspot_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectIdToMerge", + "tool_parameter_name": "object_id_to_merge", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryObjectId", + "tool_parameter_name": "primary_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotObjects.json new file mode 100644 index 00000000..cf99cdb6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeHubspotObjects.json @@ -0,0 +1,240 @@ +{ + "name": "MergeHubspotObjects", + "fully_qualified_name": "HubspotCrmApi.MergeHubspotObjects@0.1.0", + "description": "Merge two HubSpot CRM objects of the same type.\n\nUse this tool to merge two objects within HubSpot CRM that have the same object type, such as contacts or companies. It is useful for consolidating duplicate records into a single, unified entry.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_to_merge", + "required": true, + "description": "The type of HubSpot CRM object to merge, such as 'contacts' or 'companies'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_id_to_merge", + "required": true, + "description": "The ID of the object to be merged into the primary object. It must be of the same type as the primary object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectIdToMerge" + }, + { + "name": "primary_object_id", + "required": true, + "description": "The ID of the object that will remain after the merge. Provide as a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryObjectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/merge_merge'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/merge", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type_to_merge", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectIdToMerge", + "tool_parameter_name": "object_id_to_merge", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryObjectId", + "tool_parameter_name": "primary_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeSupportTickets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeSupportTickets.json new file mode 100644 index 00000000..8587549f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MergeSupportTickets.json @@ -0,0 +1,142 @@ +{ + "name": "MergeSupportTickets", + "fully_qualified_name": "HubspotCrmApi.MergeSupportTickets@0.1.0", + "description": "Merge two support tickets into one unified record.\n\nThis tool merges two separate support tickets into a single ticket record, combining all the relevant information. It should be used when consolidating duplicate or related tickets is necessary to streamline customer support operations.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "secondary_ticket_id", + "required": true, + "description": "The ID of the support ticket to be merged into the primary ticket. It specifies which ticket will be combined with the primary ticket record.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectIdToMerge" + }, + { + "name": "primary_ticket_id", + "required": true, + "description": "The ID of the ticket designated as the primary record in the merge operation. After merging, this ticket will contain all combined information.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryObjectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/merge_merge'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/merge", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectIdToMerge", + "tool_parameter_name": "secondary_ticket_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryObjectId", + "tool_parameter_name": "primary_ticket_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"objectIdToMerge\",\n \"primaryObjectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectIdToMerge\": {\n \"type\": \"string\"\n },\n \"primaryObjectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ModifyHubspotObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ModifyHubspotObject.json new file mode 100644 index 00000000..94945e79 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ModifyHubspotObject.json @@ -0,0 +1,291 @@ +{ + "name": "ModifyHubspotObject", + "fully_qualified_name": "HubspotCrmApi.ModifyHubspotObject@0.1.0", + "description": "Update specific properties of a HubSpot CRM object.\n\nUse this tool to perform partial updates on HubSpot CRM objects by specifying the object type and ID. You can update properties by providing new values, but ensure they aren't read-only or non-existent. Clear properties by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_object_type", + "required": true, + "description": "Specify the type of HubSpot CRM object (e.g., 'contacts', 'companies', 'deals').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_identifier", + "required": true, + "description": "The internal ID of the HubSpot object to update. Use a string format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "object_properties", + "required": true, + "description": "JSON object with key-value pairs for properties to update. Non-existent or read-only properties will cause an error.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property for identifying the object. Use when the default object ID isn't used.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/{objectType}/{objectId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "hubspot_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "object_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "object_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveFolderInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveFolderInHubspot.json new file mode 100644 index 00000000..1b8d4770 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveFolderInHubspot.json @@ -0,0 +1,144 @@ +{ + "name": "MoveFolderInHubspot", + "fully_qualified_name": "HubspotCrmApi.MoveFolderInHubspot@0.1.0", + "description": "Move a folder to a new parent in HubSpot CRM.\n\nThis tool moves a folder to a new parent location in HubSpot CRM, updating the folder's parent ID to the specified new ID. Use this when you need to reorganize folder structures within the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "folder_id_to_move", + "required": true, + "description": "The ID of the folder you want to move to a new location in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to move" + }, + "inferrable": true, + "http_endpoint_parameter_name": "folderId" + }, + { + "name": "target_parent_folder_id", + "required": true, + "description": "The ID of the target parent folder to which the current folder will be moved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID for the target parent folder." + }, + "inferrable": true, + "http_endpoint_parameter_name": "newParentFolderId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}_move'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/folders/{folderId}/move/{newParentFolderId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "folderId", + "tool_parameter_name": "folder_id_to_move", + "description": "The ID of the folder to move", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to move" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "newParentFolderId", + "tool_parameter_name": "target_parent_folder_id", + "description": "The ID for the target parent folder.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID for the target parent folder." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListToFolder.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListToFolder.json new file mode 100644 index 00000000..81aea104 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListToFolder.json @@ -0,0 +1,144 @@ +{ + "name": "MoveListToFolder", + "fully_qualified_name": "HubspotCrmApi.MoveListToFolder@0.1.0", + "description": "Move a CRM list to a specified folder.\n\nUse this tool to move a specific list within HubSpot CRM to a desired folder, organizing lists efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ID of the list you want to move. It should be a valid string representing the list in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of the list to move." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "target_folder_id", + "required": true, + "description": "The ID of the folder to move the list to. Use '0' for the root folder.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of folder to move the list to, the root folder is Id 0." + }, + "inferrable": true, + "http_endpoint_parameter_name": "newFolderId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/folders/move-list_moveList'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/folders/move-list", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The Id of the list to move.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of the list to move." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "newFolderId", + "tool_parameter_name": "target_folder_id", + "description": "The Id of folder to move the list to, the root folder is Id 0.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of folder to move the list to, the root folder is Id 0." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"listId\",\n \"newFolderId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"listId\": {\n \"type\": \"string\",\n \"description\": \"The Id of the list to move.\"\n },\n \"newFolderId\": {\n \"type\": \"string\",\n \"description\": \"The Id of folder to move the list to, the root folder is Id 0.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListingToRecycleBin.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListingToRecycleBin.json new file mode 100644 index 00000000..99484e4f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveListingToRecycleBin.json @@ -0,0 +1,109 @@ +{ + "name": "MoveListingToRecycleBin", + "fully_qualified_name": "HubspotCrmApi.MoveListingToRecycleBin@0.1.0", + "description": "Move a listing to the recycling bin by ID.\n\nUse this tool to move a specific listing identified by its ID to the recycling bin in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "listing_id", + "required": true, + "description": "The unique identifier of the listing to be moved to the recycling bin in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listingId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/0-420/{listingId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/{listingId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "listingId", + "tool_parameter_name": "listing_id", + "description": "The unique identifier of the listing to be archived.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the listing to be archived." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveObjectToRecycleBin.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveObjectToRecycleBin.json new file mode 100644 index 00000000..ba21c7e9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/MoveObjectToRecycleBin.json @@ -0,0 +1,207 @@ +{ + "name": "MoveObjectToRecycleBin", + "fully_qualified_name": "HubspotCrmApi.MoveObjectToRecycleBin@0.1.0", + "description": "Move a CRM object to the recycling bin.\n\nUse this tool to move a specified CRM object to the recycling bin using its object type and ID. This is useful for archiving or removing unnecessary data in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Type of the CRM object to be moved, such as 'contacts', 'companies', etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_id", + "required": true, + "description": "The unique identifier for the CRM object to be moved to the recycling bin. This ID specifies which object within the CRM will be affected.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/{objectType}/{objectId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/{objectId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/PipelineLimitsUsage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/PipelineLimitsUsage.json new file mode 100644 index 00000000..b3868145 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/PipelineLimitsUsage.json @@ -0,0 +1,138 @@ +{ + "name": "PipelineLimitsUsage", + "fully_qualified_name": "HubspotCrmApi.PipelineLimitsUsage@0.1.0", + "description": "Retrieve limits and usage for HubSpot CRM pipelines.\n\nCall this tool to obtain information about the limits and current usage of pipelines in HubSpot CRM. Useful for understanding capacity and utilization of your CRM pipelines.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/pipelines'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/pipelines", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchDealSplits.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchDealSplits.json new file mode 100644 index 00000000..97cdb205 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchDealSplits.json @@ -0,0 +1,145 @@ +{ + "name": "ReadBatchDealSplits", + "fully_qualified_name": "HubspotCrmApi.ReadBatchDealSplits@0.1.0", + "description": "Fetch a batch of deal split objects by deal ID.\n\nThis tool reads a batch of deal split objects using their associated deal object internal IDs, allowing access to multiple deal splits in one request.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_object_internal_ids", + "required": true, + "description": "A JSON array of deal object internal IDs to fetch their split details. Each ID should be a string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/deals/splits/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.dealsplits.read_write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/deals/splits/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deal_object_internal_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchPayments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchPayments.json new file mode 100644 index 00000000..2b5fe10e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchPayments.json @@ -0,0 +1,222 @@ +{ + "name": "ReadBatchPayments", + "fully_qualified_name": "HubspotCrmApi.ReadBatchPayments@0.1.0", + "description": "Retrieve a batch of payments from CRM by IDs or unique properties.\n\nUse this tool to get details of multiple payments from the CRM system based on internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_payment_details", + "required": true, + "description": "JSON object containing payment IDs, properties, and specific attributes like 'propertiesWithHistory', 'idProperty', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "only_return_archived_results", + "required": false, + "description": "Return only archived results if set to true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/payments/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/payments/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "only_return_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_payment_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchProperties.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchProperties.json new file mode 100644 index 00000000..d93a1c49 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadBatchProperties.json @@ -0,0 +1,295 @@ +{ + "name": "ReadBatchProperties", + "fully_qualified_name": "HubspotCrmApi.ReadBatchProperties@0.1.0", + "description": "Fetches a batch of properties for a specified CRM object type.\n\nUse this tool to retrieve a list of properties for a given object type in the CRM. This can be useful when you need detailed information about multiple properties at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "The type of CRM object for which properties are being read (e.g., contacts, deals).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_request_details", + "required": true, + "description": "A JSON object specifying properties to read. Includes 'archived', 'inputs' list, and 'dataSensitivity' level.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to read or modify." + } + }, + "description": null + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/properties/{objectType}/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "property_request_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to read or modify." + } + }, + "description": null + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "non_sensitive", + "sensitive", + "highly_sensitive" + ], + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"archived\",\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"archived\": {\n \"type\": \"boolean\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to read or modify.\"\n }\n },\n \"example\": {\n \"name\": \"my_custom_property\"\n }\n }\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"enum\": [\n \"non_sensitive\",\n \"sensitive\",\n \"highly_sensitive\"\n ]\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadCommunicationsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadCommunicationsPage.json new file mode 100644 index 00000000..acc83668 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadCommunicationsPage.json @@ -0,0 +1,274 @@ +{ + "name": "ReadCommunicationsPage", + "fully_qualified_name": "HubspotCrmApi.ReadCommunicationsPage@0.1.0", + "description": "Retrieve a page of communications from HubSpot CRM.\n\nUse this tool to read a page of communications. You can control the information returned using query parameters for specific properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page", + "required": false, + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The paging cursor token for the next set of results to read from the previous request's `paging.next.after` JSON property.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "specified_properties", + "required": false, + "description": "List of communication properties to return in the response. Properties not present will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with their history. Reduces the maximum number of communications per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of communications that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "retrieve_associations", + "required": false, + "description": "Comma-separated list of object types to get associated IDs for. Ignored if the association doesn't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. False includes all results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/communications_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "specified_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of communications that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of communications that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "retrieve_associations", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadProperty.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadProperty.json new file mode 100644 index 00000000..e30f368f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadProperty.json @@ -0,0 +1,285 @@ +{ + "name": "ReadProperty", + "fully_qualified_name": "HubspotCrmApi.ReadProperty@0.1.0", + "description": "Retrieve CRM property details by name and type.\n\nThis tool fetches details of a specific property from HubSpot CRM by providing the property name and object type. Use this tool to access property information when dealing with HubSpot CRM data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the CRM object type, such as 'contact' or 'company', to retrieve the property for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_name", + "required": true, + "description": "The unique name of the property to retrieve. This should match the property name in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + }, + { + "name": "property_specifications", + "required": false, + "description": "Specify the details or attributes of the property to retrieve. Use a comma-separated list for multiple specifications.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to True to return only archived property results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/properties/{objectType}/{propertyName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "property_specifications", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "property_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadPropertyGroup.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadPropertyGroup.json new file mode 100644 index 00000000..3dbc87db --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadPropertyGroup.json @@ -0,0 +1,219 @@ +{ + "name": "ReadPropertyGroup", + "fully_qualified_name": "HubspotCrmApi.ReadPropertyGroup@0.1.0", + "description": "Retrieve details of a property group by its name.\n\nUse this tool to get detailed information about a property group identified by {groupName} within a specified object type in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the type of CRM object, such as 'contacts' or 'deals'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_group_name", + "required": true, + "description": "The name of the property group to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/properties/{objectType}/groups/{groupName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "groupName", + "tool_parameter_name": "property_group_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadServicesPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadServicesPage.json new file mode 100644 index 00000000..216ee5ff --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReadServicesPage.json @@ -0,0 +1,274 @@ +{ + "name": "ReadServicesPage", + "fully_qualified_name": "HubspotCrmApi.ReadServicesPage@0.1.0", + "description": "Retrieve a page of services with customizable properties.\n\nThis tool retrieves a page of services from the HubSpot CRM API, allowing customization of returned data via the `properties` query parameter. Use this tool to access service information efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Specify the maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The cursor token from the last read to retrieve the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "requested_properties", + "required": false, + "description": "Comma-separated list of properties to include in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with their history of values. If absent, properties are ignored. Reduces max services per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of services that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for each service. Ignored if associations do not exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived results; false to include non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/0-162'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of services that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of services that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveAllListMemberships.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveAllListMemberships.json new file mode 100644 index 00000000..cac117af --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveAllListMemberships.json @@ -0,0 +1,111 @@ +{ + "name": "RemoveAllListMemberships", + "fully_qualified_name": "HubspotCrmApi.RemoveAllListMemberships@0.1.0", + "description": "Remove all records from a CRM list without deleting the list.\n\nUse this tool to remove all memberships from a HubSpot CRM list that has a processing type of MANUAL or SNAPSHOT. Suitable for lists with fewer than 100,000 memberships.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ILS ID of a MANUAL or SNAPSHOT list in HubSpot CRM. Required for removing all memberships.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/lists/{listId}/memberships_removeAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveCrmAssociation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveCrmAssociation.json new file mode 100644 index 00000000..e55ab042 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveCrmAssociation.json @@ -0,0 +1,306 @@ +{ + "name": "RemoveCrmAssociation", + "fully_qualified_name": "HubspotCrmApi.RemoveCrmAssociation@0.1.0", + "description": "Remove associations between CRM objects.\n\nThis tool removes the association between two CRM objects based on specified types and IDs. Use it when you need to delete a relationship or link between specific CRM entities.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the type of the primary CRM object (e.g., 'contact', 'company').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "source_object_id", + "required": true, + "description": "The unique identifier of the source object whose association is to be removed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "target_object_type", + "required": true, + "description": "Specifies the type of the target CRM object to unlink. Examples include 'contact', 'company', etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "target_object_id", + "required": true, + "description": "The ID of the target object to unlink from the source object. This must be a string representing the unique identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectId" + }, + { + "name": "association_type", + "required": true, + "description": "The type of association between the CRM objects to be removed. Specify the nature of the relationship, such as 'contact-to-company'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "source_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectId", + "tool_parameter_name": "target_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationType", + "tool_parameter_name": "association_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerClientAssociation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerClientAssociation.json new file mode 100644 index 00000000..8df1f6a3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerClientAssociation.json @@ -0,0 +1,208 @@ +{ + "name": "RemovePartnerClientAssociation", + "fully_qualified_name": "HubspotCrmApi.RemovePartnerClientAssociation@0.1.0", + "description": "Remove an association between two partner clients in HubSpot CRM.\n\nThis tool removes an existing association between two partner clients in the HubSpot CRM system. It should be called when you need to disassociate a partner client from another object, identified by specific IDs and association type.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_client_id", + "required": true, + "description": "The unique identifier for the partner client to be disassociated. This should be a string that identifies the specific partner client in the HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerClientId" + }, + { + "name": "target_object_type", + "required": true, + "description": "Specify the type of the object you are dissociating from the partner client, such as 'contacts' or 'companies'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "target_object_id", + "required": true, + "description": "The unique identifier of the object associated with the target partner client.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectId" + }, + { + "name": "association_type", + "required": true, + "description": "The type of association to be removed between the partner client and the object. This defines the nature of their relationship.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "partnerClientId", + "tool_parameter_name": "partner_client_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectId", + "tool_parameter_name": "target_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationType", + "tool_parameter_name": "association_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerServiceAssociation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerServiceAssociation.json new file mode 100644 index 00000000..812d648c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemovePartnerServiceAssociation.json @@ -0,0 +1,208 @@ +{ + "name": "RemovePartnerServiceAssociation", + "fully_qualified_name": "HubspotCrmApi.RemovePartnerServiceAssociation@0.1.0", + "description": "Remove an association between two partner services.\n\nThis tool removes the specified association between partner services in HubSpot CRM. Use it when you need to disassociate two services linked by a specific relationship.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_service_id", + "required": true, + "description": "The unique identifier for the partner service. It specifies which partner service's association is to be removed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerServiceId" + }, + { + "name": "target_object_type", + "required": true, + "description": "The type of the object to which the partner service is associated. Specify the object category, such as 'contact', 'company', etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectType" + }, + { + "name": "target_object_id", + "required": true, + "description": "The unique identifier of the object to be disassociated from the partner service. This is required to specify which object is being unlinked.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "toObjectId" + }, + { + "name": "association_type", + "required": true, + "description": "Specifies the type of association to remove between the partner services. This is a string value that defines how the services are linked.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "associationType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}/associations/{toObjectType}/{toObjectId}/{associationType}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "partnerServiceId", + "tool_parameter_name": "partner_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectType", + "tool_parameter_name": "target_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "toObjectId", + "tool_parameter_name": "target_object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associationType", + "tool_parameter_name": "association_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveProduct.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveProduct.json new file mode 100644 index 00000000..d2efeeee --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveProduct.json @@ -0,0 +1,109 @@ +{ + "name": "RemoveProduct", + "fully_qualified_name": "HubspotCrmApi.RemoveProduct@0.1.0", + "description": "Archive a product by moving it to the recycling bin.\n\nUse this tool to move a product, identified by its productId, to the recycling bin in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "The unique identifier of the product to be archived in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "productId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/crm/v3/objects/products/{productId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/{productId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "productId", + "tool_parameter_name": "product_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveRecordsFromList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveRecordsFromList.json new file mode 100644 index 00000000..0c7715d3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RemoveRecordsFromList.json @@ -0,0 +1,144 @@ +{ + "name": "RemoveRecordsFromList", + "fully_qualified_name": "HubspotCrmApi.RemoveRecordsFromList@0.1.0", + "description": "Remove specified records from a HubSpot CRM list.\n\nUse this tool to remove records from a HubSpot CRM list with `processingType` of `MANUAL` or `SNAPSHOT`. Records not in the list will be ignored.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ILS ID of the MANUAL or SNAPSHOT list from which records will be removed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "record_ids_to_remove", + "required": true, + "description": "List of record IDs to remove from the HubSpot CRM list.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The IDs of the records to remove from the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/remove_remove'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships/remove", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "record_ids_to_remove", + "description": "The IDs of the records to remove from the list.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The IDs of the records to remove from the list." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"The IDs of the records to remove from the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RenameCrmFolder.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RenameCrmFolder.json new file mode 100644 index 00000000..5df2efad --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RenameCrmFolder.json @@ -0,0 +1,144 @@ +{ + "name": "RenameCrmFolder", + "fully_qualified_name": "HubspotCrmApi.RenameCrmFolder@0.1.0", + "description": "Rename a folder in HubSpot CRM by its folder ID.\n\nUse this tool to rename a specific folder in HubSpot CRM using its folder ID. Useful for organizing or updating folder names within your CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "folder_id", + "required": true, + "description": "The ID of the folder you want to rename in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to rename" + }, + "inferrable": true, + "http_endpoint_parameter_name": "folderId" + }, + { + "name": "new_folder_name", + "required": false, + "description": "The new name to assign to the folder. It should be a string representing the desired folder name in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new name of the folder." + }, + "inferrable": true, + "http_endpoint_parameter_name": "newFolderName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/folders/{folderId}/rename_rename'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/folders/{folderId}/rename", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "newFolderName", + "tool_parameter_name": "new_folder_name", + "description": "The new name of the folder.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new name of the folder." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "folderId", + "tool_parameter_name": "folder_id", + "description": "The ID of the folder to rename", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the folder to rename" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineHubspot.json new file mode 100644 index 00000000..941c1d0f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineHubspot.json @@ -0,0 +1,361 @@ +{ + "name": "ReplacePipelineHubspot", + "fully_qualified_name": "HubspotCrmApi.ReplacePipelineHubspot@0.1.0", + "description": "Replace a specific pipeline in HubSpot CRM.\n\nUse this tool to replace a specific pipeline in HubSpot CRM when you need to update or modify the pipeline's entire structure or data.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the object type for the pipeline, such as 'deals' or 'tickets'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_identifier", + "required": true, + "description": "The unique identifier of the pipeline to replace in HubSpot CRM. This is required to specify which pipeline is being modified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "pipeline_details", + "required": true, + "description": "A JSON object containing details about the pipeline, including 'displayOrder', 'stages', and 'label'. Includes stage-specific metadata like 'probability' for deals and 'ticketState' for tickets.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "stages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "Pipeline stage inputs used to create the new or replacement pipeline." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "validate_references_before_deletion", + "required": false, + "description": "Set to true to validate all references before deleting the pipeline.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "validateReferencesBeforeDelete" + }, + { + "name": "validate_deal_stage_usages_before_delete", + "required": false, + "description": "Set to true to validate deal stage usages before deleting a pipeline; false to proceed without validation.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "validateDealStageUsagesBeforeDelete" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/pipelines/{objectType}/{pipelineId}_replace'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "validateReferencesBeforeDelete", + "tool_parameter_name": "validate_references_before_deletion", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "tool_parameter_name": "validate_deal_stage_usages_before_delete", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "pipeline_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "stages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "description": "Pipeline stage inputs used to create the new or replacement pipeline." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"stages\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"stages\": {\n \"type\": \"array\",\n \"description\": \"Pipeline stage inputs used to create the new or replacement pipeline.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A unique label used to organize pipelines in HubSpot's UI\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline's definition.\",\n \"example\": {\n \"label\": \"My replaced pipeline\",\n \"displayOrder\": 0,\n \"stages\": [\n {\n \"label\": \"In Progress\",\n \"displayOrder\": 0,\n \"metadata\": {\n \"ticketState\": \"OPEN\"\n }\n },\n {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineStageProperties.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineStageProperties.json new file mode 100644 index 00000000..7bad35a8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ReplacePipelineStageProperties.json @@ -0,0 +1,278 @@ +{ + "name": "ReplacePipelineStageProperties", + "fully_qualified_name": "HubspotCrmApi.ReplacePipelineStageProperties@0.1.0", + "description": "Replace and update a pipeline stage in HubSpot CRM.\n\nUse this tool to replace all properties of an existing pipeline stage in HubSpot CRM with the provided values. The modified stage's details are returned in the response.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specifies the CRM object type like 'deals' or 'contacts' to identify the pipeline stage being replaced.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "The unique identifier for the pipeline whose stage properties are to be replaced. This must match the ID used in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "pipeline_stage_id", + "required": true, + "description": "The unique identifier for the pipeline stage to be replaced. This is required to specify which stage's properties will be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "stageId" + }, + { + "name": "pipeline_stage_properties", + "required": true, + "description": "A JSON object with new properties for the pipeline stage. Includes fields like `metadata`, `displayOrder`, and `label`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_replace'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "stageId", + "tool_parameter_name": "pipeline_stage_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "pipeline_stage_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"displayOrder\",\n \"label\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to create or replace a pipeline stage's definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RestoreDeletedList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RestoreDeletedList.json new file mode 100644 index 00000000..dd82cfdf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RestoreDeletedList.json @@ -0,0 +1,111 @@ +{ + "name": "RestoreDeletedList", + "fully_qualified_name": "HubspotCrmApi.RestoreDeletedList@0.1.0", + "description": "Restore a previously deleted HubSpot CRM list.\n\nThis tool restores a previously deleted list in HubSpot CRM using the list ID. Lists can be restored up to 90 days after deletion. Use this when you need to recover a list that was mistakenly deleted.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id_to_restore", + "required": true, + "description": "The ILS ID of the list to restore. Use this to specify which deleted list to recover.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to restore." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/restore_restore'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/restore", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id_to_restore", + "description": "The **ILS ID** of the list to restore.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to restore." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveAllCompanies.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveAllCompanies.json new file mode 100644 index 00000000..a89cd33b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveAllCompanies.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveAllCompanies", + "fully_qualified_name": "HubspotCrmApi.RetrieveAllCompanies@0.1.0", + "description": "Retrieve all companies from HubSpot CRM.\n\nThis tool retrieves all companies from the HubSpot CRM. It uses query parameters to control the information that gets returned, such as filtering or specifying fields. Useful for getting a comprehensive list of companies stored in the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page_limit", + "required": false, + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The cursor token to fetch the next set of results in a paginated response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "properties_to_return", + "required": false, + "description": "List of properties to include in the response. Ignore if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of properties to return with their history of previous values. This reduces max companies per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of companies that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/companies_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page_limit", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of companies that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of companies that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCommunications.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCommunications.json new file mode 100644 index 00000000..c445ec50 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCommunications.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveBatchCommunications", + "fully_qualified_name": "HubspotCrmApi.RetrieveBatchCommunications@0.1.0", + "description": "Retrieve a batch of communication messages by ID.\n\nThis tool retrieves a batch of communication messages from the HubSpot CRM using either the message ID or a unique property value. It should be called when you need to access multiple messages simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "communication_batch_request_body", + "required": true, + "description": "JSON object with properties: 'propertiesWithHistory' (key-value pairs with histories), 'idProperty' (custom unique property name), 'inputs' (array with 'id' strings), 'properties' (key-value pairs).", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to True to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "communication_batch_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCompaniesHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCompaniesHubspot.json new file mode 100644 index 00000000..ca14afbc --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchCompaniesHubspot.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveBatchCompaniesHubspot", + "fully_qualified_name": "HubspotCrmApi.RetrieveBatchCompaniesHubspot@0.1.0", + "description": "Retrieve a batch of company records from HubSpot CRM.\n\nUse this tool to retrieve multiple companies from HubSpot CRM by specifying their IDs or unique properties. You can customize the returned data using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_companies_request_body", + "required": true, + "description": "JSON object containing 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties' to specify company retrieval criteria.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived companies in the results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_companies_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchLineItems.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchLineItems.json new file mode 100644 index 00000000..3bff7abf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveBatchLineItems.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveBatchLineItems", + "fully_qualified_name": "HubspotCrmApi.RetrieveBatchLineItems@0.1.0", + "description": "Retrieve batch line item records by ID or custom property.\n\nUse this tool to retrieve multiple line item records from HubSpot CRM using their IDs or a custom unique property. This is helpful for accessing specific sets of records without manually querying each one individually.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_request_body", + "required": true, + "description": "JSON object with optional `idProperty`, list of `inputs` with `id`, `properties`, and `propertiesWithHistory` to retrieve records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "retrieve_only_archived", + "required": false, + "description": "Set to true to retrieve only archived line items.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "retrieve_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCallsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCallsBatch.json new file mode 100644 index 00000000..c87b1838 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCallsBatch.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveCallsBatch", + "fully_qualified_name": "HubspotCrmApi.RetrieveCallsBatch@0.1.0", + "description": "Retrieve a batch of calls by ID from HubSpot CRM.\n\nUse this tool to fetch details of multiple calls from HubSpot CRM by providing their IDs. It returns information about each call in the batch.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "calls_request_body", + "required": true, + "description": "A JSON object containing arrays for properties, inputs, and settings for retrieving calls. It includes propertiesWithHistory for key-value pairs to set call properties and their histories, idProperty for custom unique identifiers, inputs array with call IDs, and properties array for additional settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to 'true' to return only archived calls, 'false' to exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "calls_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartDetails.json new file mode 100644 index 00000000..f86b0e89 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartDetails.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveCartDetails", + "fully_qualified_name": "HubspotCrmApi.RetrieveCartDetails@0.1.0", + "description": "Retrieve detailed information about shopping carts.\n\nUse this tool to get information about shopping carts, with options to specify which details to retrieve via query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Maximum number of results to display per page when retrieving cart details.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The paging cursor token for retrieving the next set of results. Use the `paging.next.after` from the previous response for more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "cart_properties_to_return", + "required": false, + "description": "List of properties to include in the response for each cart. Ignored if missing on objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history_list", + "required": false, + "description": "List of properties to return with their history in the response. Reduces max number of carts per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of carts that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List object types to retrieve associated IDs for. Ignored if associations don't exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/carts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "cart_properties_to_return", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history_list", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of carts that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of carts that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartRecords.json new file mode 100644 index 00000000..a462538d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCartRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveCartRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveCartRecords@0.1.0", + "description": "Retrieve cart records by record ID or custom property.\n\nUse this tool to fetch cart records from HubSpot CRM by specifying record IDs or using a custom unique value property. Ideal for accessing detailed cart information.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_record_request", + "required": true, + "description": "JSON object containing 'inputs' with record IDs or 'idProperty' for custom retrieval, 'properties' to set values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "only_archived_results", + "required": false, + "description": "Set to true to return only archived results. Default is false.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "cart_record_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentDetails.json new file mode 100644 index 00000000..35ba53ba --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentDetails.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveCommercePaymentDetails", + "fully_qualified_name": "HubspotCrmApi.RetrieveCommercePaymentDetails@0.1.0", + "description": "Retrieve details of a specific commerce payment using its ID.\n\nUse this tool to obtain detailed information about a commerce payment by specifying its unique ID. This can include any details specified by the `properties` query parameter, if required.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_id", + "required": true, + "description": "The unique identifier for the commerce payment to retrieve details for. It corresponds to the internal object ID by default.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "commercePaymentId" + }, + { + "name": "return_properties", + "required": false, + "description": "A list of property names to be included in the response. Irrelevant properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to retrieve along with their historical values. Specify as comma-separated values.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for. If any specified associations do not exist, they are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name used as a unique identifier for the commerce payment object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "only_return_archived_results", + "required": false, + "description": "Specify `true` to return only archived results. Default is `false`.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/commerce_payments/{commercePaymentId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "only_return_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "commercePaymentId", + "tool_parameter_name": "commerce_payment_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentRecords.json new file mode 100644 index 00000000..e3e1286b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCommercePaymentRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveCommercePaymentRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveCommercePaymentRecords@0.1.0", + "description": "Retrieve commerce payment records by ID or unique property.\n\nThis tool is used to fetch commerce payment records from HubSpot CRM by specifying record IDs or using a custom unique property for retrieval.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_request_body", + "required": true, + "description": "Provide JSON data with properties, idProperty, and record IDs to fetch payment records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_results_only", + "required": false, + "description": "Return only archived commerce payment records if set to true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_results_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "commerce_payment_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCompanyById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCompanyById.json new file mode 100644 index 00000000..db9e84aa --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCompanyById.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveCompanyById", + "fully_qualified_name": "HubspotCrmApi.RetrieveCompanyById@0.1.0", + "description": "Retrieve detailed company information using its ID.\n\nUse this tool to get detailed information about a company by providing its ID or a unique property. You can specify which properties to retrieve.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_identifier", + "required": true, + "description": "A unique identifier for the company, such as its ID or a unique property name, used to retrieve its details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "companyId" + }, + { + "name": "company_properties_to_retrieve", + "required": false, + "description": "List the specific company properties to retrieve, separated by commas. Ignored if properties are unavailable.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "retrieve_properties_with_history", + "required": false, + "description": "List of properties to return with their history of previous values. Ignored if properties aren't present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. Ignores non-existent associations.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property to identify the company. Used instead of company ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only archived results. If false, non-archived results will be returned.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/companies/{companyId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/{companyId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "company_properties_to_retrieve", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "retrieve_properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "companyId", + "tool_parameter_name": "company_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveConversionDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveConversionDetails.json new file mode 100644 index 00000000..4d3c383f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveConversionDetails.json @@ -0,0 +1,109 @@ +{ + "name": "RetrieveConversionDetails", + "fully_qualified_name": "HubspotCrmApi.RetrieveConversionDetails@0.1.0", + "description": "Retrieve conversion details for a specific list in HubSpot CRM.\n\nUse this tool to check for upcoming conversions or to get details of past conversions for a list.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ID of the list for which you want to retrieve conversion details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list to schedule the conversion for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/{listId}/schedule-conversion'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/schedule-conversion", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The ID of the list to schedule the conversion for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list to schedule the conversion for." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmObject.json new file mode 100644 index 00000000..2b63ae41 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmObject.json @@ -0,0 +1,372 @@ +{ + "name": "RetrieveCrmObject", + "fully_qualified_name": "HubspotCrmApi.RetrieveCrmObject@0.1.0", + "description": "Fetch CRM object details by ID or unique property.\n\nUse this tool to retrieve details of a CRM object by specifying the object type and ID. You can control the properties returned using query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the type of CRM object to retrieve, such as \"contacts\", \"companies\", or \"deals\".", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_id", + "required": true, + "description": "The ID of the CRM object to retrieve. This can be the internal object ID or a unique property value specified by the id_property.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "properties_list", + "required": false, + "description": "An array of property names to be returned in the response. If any specified properties are not present, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List properties to be returned with their historical values. If a property doesn't exist, it'll be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for. Missing associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a property with unique values for this object to identify it instead of the default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/objects/v3/{objectType}/{objectId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "properties_list", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "object_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmRecords.json new file mode 100644 index 00000000..54ebe040 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveCrmRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveCrmRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveCrmRecords@0.1.0", + "description": "Retrieve CRM records by ID or custom unique property.\n\nThis tool retrieves CRM records using either their record ID or a custom unique value property specified by the `idProperty` parameter. It is useful for accessing detailed information about specific records stored in the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "record_retrieval_request_body", + "required": true, + "description": "A JSON object containing 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties'. Used to specify how records should be retrieved based on IDs or a custom property.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "retrieve_only_archived_records", + "required": false, + "description": "Set to true to retrieve only archived CRM records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "retrieve_only_archived_records", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "record_retrieval_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountDetails.json new file mode 100644 index 00000000..c6520304 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountDetails.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveDiscountDetails", + "fully_qualified_name": "HubspotCrmApi.RetrieveDiscountDetails@0.1.0", + "description": "Retrieve details of a discount by its ID.\n\nUse this tool to get detailed information about a specific discount object by providing its ID. The tool allows customization of returned properties through query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_identifier", + "required": true, + "description": "The unique identifier for the discount object to retrieve. This can either be the internal ID or a value of a unique property specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "discountId" + }, + { + "name": "return_properties", + "required": false, + "description": "Comma-separated list of properties to return in response. Ignored if not present on the object.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to retrieve along with their value history. Ignored if properties are missing.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "Comma-separated list of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name for uniquely identifying the discount object. Use when the property value is not the default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "archived_results_only", + "required": false, + "description": "Set to true to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/discounts/{discountId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/{discountId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "return_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "archived_results_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "discountId", + "tool_parameter_name": "discount_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountRecords.json new file mode 100644 index 00000000..5962a462 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveDiscountRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveDiscountRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveDiscountRecords@0.1.0", + "description": "Retrieve discount records by ID or custom property.\n\nThis tool retrieves discount records from HubSpot CRM by specifying record IDs or a unique custom property. Use it to fetch detailed information about discounts in a batch.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_request_body", + "required": true, + "description": "JSON object containing properties, idProperty for custom IDs, inputs for record IDs, and propertiesWithHistory for detailed properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "archived", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "discount_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailById.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailById.json new file mode 100644 index 00000000..eb8c5759 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailById.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveEmailById", + "fully_qualified_name": "HubspotCrmApi.RetrieveEmailById@0.1.0", + "description": "Retrieve email object details using its ID.\n\nUse this tool to get detailed information about an email object in HubSpot CRM using its unique ID. You can control the output via query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique ID or property value of the email object to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "returned_properties", + "required": false, + "description": "A list of properties to return for the email object. Properties not present on the object will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "Comma-separated property names to include their history of previous values in the response. Non-existent properties will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "object_types_for_associated_ids", + "required": false, + "description": "List the object types to retrieve associated IDs. If no associations exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the property name that holds unique values for the email object to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only archived results. Set to false to return active results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/emails/{emailId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/{emailId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "properties", + "tool_parameter_name": "returned_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "object_types_for_associated_ids", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailRecords.json new file mode 100644 index 00000000..e62b559a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveEmailRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveEmailRecords@0.1.0", + "description": "Retrieve email records by ID or custom property.\n\nThis tool retrieves email records from HubSpot CRM by providing record IDs or using a custom unique value property. It should be called when you need details about specific email records stored within HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_records_data", + "required": true, + "description": "JSON data for fetching email records. Includes properties like `propertiesWithHistory`, `idProperty`, `inputs`, and `properties` to define retrieval specifics.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "only_archived_records", + "required": false, + "description": "Set to true to return only archived email records from HubSpot CRM.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "only_archived_records", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "email_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailsPage.json new file mode 100644 index 00000000..cef04c93 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEmailsPage.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveEmailsPage", + "fully_qualified_name": "HubspotCrmApi.RetrieveEmailsPage@0.1.0", + "description": "Retrieve a page of emails from HubSpot CRM.\n\nThis tool reads a page of emails from HubSpot CRM. You can control which email properties are returned by using the `properties` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "The maximum number of email results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token for the next page of results, from the `paging.next.after` field of the previous response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "returned_email_properties", + "required": false, + "description": "List the email properties to be included in the response. Specify as an array of strings representing the desired properties.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their history of previous values. Reduces maximum emails per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of emails that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types to retrieve associated IDs for. If any specified associations don't exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to retrieve only archived emails.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/emails_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "returned_email_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of emails that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of emails that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventDetails.json new file mode 100644 index 00000000..ab199b9e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventDetails.json @@ -0,0 +1,157 @@ +{ + "name": "RetrieveEventDetails", + "fully_qualified_name": "HubspotCrmApi.RetrieveEventDetails@0.1.0", + "description": "Retrieve detailed information for a specific HubSpot event.\n\nUse this tool to get detailed information about a specific event in HubSpot CRM, identified by its template ID and event ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_template_id", + "required": true, + "description": "The ID of the event template used to identify and retrieve specific event details in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "eventTemplateId" + }, + { + "name": "event_id", + "required": true, + "description": "Specify the event ID to retrieve detailed information for a specific event in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event ID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "eventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail_getDetailById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.highly_sensitive.read.v2", + "crm.schemas.companies.read", + "tickets.sensitive.v2", + "crm.schemas.contacts.read", + "tickets.highly_sensitive.v2", + "crm.objects.contacts.read", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.schemas.deals.read", + "crm.objects.deals.read", + "tickets", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.contacts.sensitive.read.v2", + "crm.objects.companies.read", + "timeline" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId}/detail", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "eventTemplateId", + "tool_parameter_name": "event_template_id", + "description": "The event template ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "eventId", + "tool_parameter_name": "event_id", + "description": "The event ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event ID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventInstance.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventInstance.json new file mode 100644 index 00000000..c0a82cd5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveEventInstance.json @@ -0,0 +1,157 @@ +{ + "name": "RetrieveEventInstance", + "fully_qualified_name": "HubspotCrmApi.RetrieveEventInstance@0.1.0", + "description": "Retrieve an event instance using template and event ID.\n\nUse this tool to access detailed information about a specific event instance by providing the event template ID and event ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_template_id", + "required": true, + "description": "The unique ID of the event template required to retrieve the event instance.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "eventTemplateId" + }, + { + "name": "event_id", + "required": true, + "description": "The unique identifier for the specific event you want to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event ID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "eventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.highly_sensitive.read.v2", + "crm.schemas.companies.read", + "tickets.sensitive.v2", + "crm.schemas.contacts.read", + "tickets.highly_sensitive.v2", + "crm.objects.contacts.read", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.schemas.deals.read", + "crm.objects.deals.read", + "tickets", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.contacts.sensitive.read.v2", + "crm.objects.companies.read", + "timeline" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/integrators/timeline/v3/events/{eventTemplateId}/{eventId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "eventTemplateId", + "tool_parameter_name": "event_template_id", + "description": "The event template ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "eventId", + "tool_parameter_name": "event_id", + "description": "The event ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event ID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeeRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeeRecords.json new file mode 100644 index 00000000..29ade231 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeeRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveFeeRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveFeeRecords@0.1.0", + "description": "Retrieve fee records by ID or custom property.\n\nUse this tool to retrieve fee records from HubSpot CRM by specifying record IDs or using a custom unique value property. Useful for accessing detailed record information in batch.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_records_request", + "required": true, + "description": "JSON object including propertiesWithHistory, idProperty, inputs, and properties to specify how fee records are retrieved.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived fee records. False to return active records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "fee_records_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeedbackRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeedbackRecords.json new file mode 100644 index 00000000..05576119 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFeedbackRecords.json @@ -0,0 +1,227 @@ +{ + "name": "RetrieveFeedbackRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveFeedbackRecords@0.1.0", + "description": "Retrieve feedback submission records by ID or custom properties.\n\nUse this tool to fetch feedback submission records from HubSpot CRM using either a record ID or a custom unique value property (`idProperty`).", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "feedback_request_body", + "required": true, + "description": "JSON object containing `propertiesWithHistory`, `idProperty`, `inputs`, and `properties` to specify retrieval details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived feedback submission records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/feedback_submissions/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/feedback_submissions/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "feedback_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFoldersWithChildNodes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFoldersWithChildNodes.json new file mode 100644 index 00000000..dd28594f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveFoldersWithChildNodes.json @@ -0,0 +1,109 @@ +{ + "name": "RetrieveFoldersWithChildNodes", + "fully_qualified_name": "HubspotCrmApi.RetrieveFoldersWithChildNodes@0.1.0", + "description": "Retrieve folders and include all child folders recursively.\n\nThis tool is used to retrieve a folder from HubSpot CRM and recursively include all child folders via the childNodes attribute, while child lists in these nodes will be empty. Only the retrieved folder will include its child lists.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "target_folder_id", + "required": false, + "description": "The ID of the folder to retrieve and include all child nodes recursively from HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of the folder to retrieve." + }, + "inferrable": true, + "http_endpoint_parameter_name": "folderId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/folders_getAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/folders", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "folderId", + "tool_parameter_name": "target_folder_id", + "description": "The Id of the folder to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The Id of the folder to retrieve." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": "0", + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveGoalTargets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveGoalTargets.json new file mode 100644 index 00000000..dab97523 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveGoalTargets.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveGoalTargets", + "fully_qualified_name": "HubspotCrmApi.RetrieveGoalTargets@0.1.0", + "description": "Retrieve goal target records using record ID or custom value.\n\nUse this tool to retrieve goal target records from HubSpot CRM by providing either the record ID or a custom unique value property.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_request_body", + "required": true, + "description": "JSON object with 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties' to specify record retrieval criteria.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to return only the archived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "goal_target_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotCrmRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotCrmRecords.json new file mode 100644 index 00000000..9e962650 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotCrmRecords.json @@ -0,0 +1,324 @@ +{ + "name": "RetrieveHubspotCrmRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotCrmRecords@0.1.0", + "description": "Retrieve HubSpot CRM records by ID or unique property.\n\nUse this tool to fetch HubSpot CRM records by specifying a record ID or a custom unique value property using the `idProperty` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "The type of CRM object to retrieve (e.g., contacts, companies).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "record_retrieval_details", + "required": true, + "description": "A JSON object with properties, idProperty, inputs, and propertiesWithHistory for specifying record retrieval details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived_records", + "required": false, + "description": "Set true to return only archived records; false to return unarchived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_records", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "record_retrieval_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotOrders.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotOrders.json new file mode 100644 index 00000000..9bb46ca9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotOrders.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveHubspotOrders", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotOrders@0.1.0", + "description": "Retrieve order records from HubSpot CRM by ID or custom property.\n\nUse this tool to fetch order records from HubSpot CRM by providing record IDs or a custom unique value property. Ideal for accessing specific order details stored in your HubSpot account.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_retrieval_data", + "required": true, + "description": "JSON object containing properties for retrieval, such as 'idProperty' for custom unique values or 'inputs' for record IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived_orders", + "required": false, + "description": "Set to True to return only archived order records from HubSpot CRM.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_orders", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "order_retrieval_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProductRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProductRecords.json new file mode 100644 index 00000000..c29d53cb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProductRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveHubspotProductRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotProductRecords@0.1.0", + "description": "Retrieve HubSpot product records by ID or unique property.\n\nThis tool retrieves HubSpot CRM product records using a record ID or a custom unique value property (`idProperty`). It is useful for accessing detailed product data stored in HubSpot CRM based on specific identifiers.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_record_request_body", + "required": true, + "description": "JSON object containing 'idProperty', 'properties', 'propertiesWithHistory', and 'inputs'. Used to specify product records by ID or unique properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "only_archived", + "required": false, + "description": "Set to true to retrieve only archived product records. False returns unarchived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "product_record_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProperties.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProperties.json new file mode 100644 index 00000000..def9d055 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotProperties.json @@ -0,0 +1,252 @@ +{ + "name": "RetrieveHubspotProperties", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotProperties@0.1.0", + "description": "Retrieve all properties for a HubSpot object type.\n\nUse this tool to read all existing properties for a specified object type in HubSpot CRM. It provides property details relevant to the chosen object type within a HubSpot account.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the HubSpot object type (e.g., contact, deal) to retrieve properties for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "selected_properties", + "required": false, + "description": "A comma-separated list of specific properties to retrieve for the object type. Leave empty to retrieve all properties.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only results that have been archived. Otherwise, return all properties.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/properties/{objectType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "selected_properties", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotPropertyGroups.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotPropertyGroups.json new file mode 100644 index 00000000..7cee12b8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotPropertyGroups.json @@ -0,0 +1,186 @@ +{ + "name": "RetrieveHubspotPropertyGroups", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotPropertyGroups@0.1.0", + "description": "Retrieve HubSpot CRM property groups for a specified object type.\n\nThis tool retrieves all existing property groups for a specified object type within a HubSpot account. Use it to access property group information for organizing and managing CRM data effectively.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_object_type", + "required": true, + "description": "Specify the HubSpot object type to retrieve property groups, such as 'contacts', 'companies', or 'deals'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/properties/{objectType}/groups'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.subscriptions.write", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.pipelines.orders.read", + "automation", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.appointments.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.marketing_events.read", + "crm.objects.appointments.read", + "crm.schemas.appointments.read", + "crm.objects.subscriptions.read", + "crm.schemas.deals.read", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.contacts.sensitive.read.v2", + "crm.schemas.line_items.read", + "crm.objects.goals.read", + "media_bridge.read", + "crm.objects.products.write", + "crm.schemas.listings.read", + "crm.objects.contacts.write", + "crm.objects.goals.write", + "crm.schemas.custom.read", + "crm.objects.marketing_events.write", + "crm.objects.leads.read", + "crm.schemas.orders.read", + "crm.objects.feedback_submissions.read", + "crm.objects.custom.sensitive.write.v2", + "crm.schemas.quotes.read", + "tickets", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.schemas.commercepayments.read", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.leads.write", + "crm.objects.commercepayments.write", + "crm.objects.orders.read", + "crm.schemas.carts.read", + "tickets.sensitive.v2", + "crm.schemas.invoices.read", + "crm.objects.contacts.sensitive.write.v2", + "e-commerce", + "crm.objects.owners.read", + "crm.objects.quotes.write", + "crm.objects.line_items.write", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.schemas.services.read", + "crm.objects.courses.write", + "crm.schemas.contacts.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.services.write", + "crm.objects.courses.read", + "crm.schemas.courses.read", + "crm.objects.custom.read", + "crm.schemas.subscriptions.read", + "crm.schemas.companies.read", + "tickets.highly_sensitive.v2", + "crm.objects.companies.write", + "crm.objects.quotes.read", + "crm.objects.companies.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.invoices.read", + "crm.objects.listings.write", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/groups", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "hubspot_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotRecords.json new file mode 100644 index 00000000..e8323e5c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveHubspotRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotRecords@0.1.0", + "description": "Retrieve HubSpot CRM records by ID or unique property.\n\nThis tool retrieves HubSpot CRM records using either the record ID or a custom unique value property specified by the `idProperty`. It's useful for accessing multiple records within the CRM at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_record_request", + "required": true, + "description": "JSON object containing parameters to retrieve HubSpot CRM records. Includes `idProperty` for unique property lookup, `inputs` for record IDs, optional `properties` for field selection, and `propertiesWithHistory` for field histories.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_records", + "required": false, + "description": "Set to true to return only archived records; false to exclude archived records in HubSpot CRM.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_records", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "hubspot_record_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotTasks.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotTasks.json new file mode 100644 index 00000000..c383b42c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotTasks.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveHubspotTasks", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotTasks@0.1.0", + "description": "Retrieve HubSpot task records by ID or custom property.\n\nUse this tool to fetch task records from HubSpot CRM by specifying record IDs or a custom unique value property via the `idProperty` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_request_body", + "required": true, + "description": "JSON object containing properties for setting tasks, their histories, and optional custom property ID for retrieving records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived records from HubSpot.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotUserRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotUserRecords.json new file mode 100644 index 00000000..ff4f2962 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveHubspotUserRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveHubspotUserRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveHubspotUserRecords@0.1.0", + "description": "Retrieve HubSpot user records by ID or unique property.\n\nUse this tool to fetch HubSpot CRM user records by providing a record ID or specifying a custom unique value property with the `idProperty` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_record_retrieval_request", + "required": true, + "description": "Details for retrieving HubSpot user records, including custom properties, IDs, and historic changes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Specify True to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "user_record_retrieval_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoiceRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoiceRecords.json new file mode 100644 index 00000000..f3cc3cf6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoiceRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveInvoiceRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveInvoiceRecords@0.1.0", + "description": "Retrieve invoice records by ID or custom property.\n\nUse this tool to obtain invoice records by specifying the record ID or using a custom unique value property. Ideal for accessing specific invoice data within the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_request_body", + "required": true, + "description": "JSON object with 'idProperty' for custom ID retrieval, 'inputs' for record IDs, and 'properties' for setting key-value pairs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only results that have been archived from HubSpot CRM.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "invoice_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoices.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoices.json new file mode 100644 index 00000000..931678f2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveInvoices.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveInvoices", + "fully_qualified_name": "HubspotCrmApi.RetrieveInvoices@0.1.0", + "description": "Retrieve a page of invoices from HubSpot CRM.\n\nUse this tool to read a page of invoices from HubSpot CRM. You can control the return data by specifying desired properties through the query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "maximum_results_per_page", + "required": false, + "description": "The maximum number of invoice results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "The token for the last successfully read resource to retrieve the next page of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "specified_properties", + "required": false, + "description": "List of invoice property names to return. Ignored if properties are not present on the objects.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List properties to return with their historical values. Reduced invoice limit per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of invoices that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "A list of object types whose associated IDs should be retrieved. Ignored if associations do not exist.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived invoices; false for all invoices.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/invoices_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "maximum_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "specified_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of invoices that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of invoices that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLeadRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLeadRecords.json new file mode 100644 index 00000000..b4c3e9ad --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLeadRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveLeadRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveLeadRecords@0.1.0", + "description": "Retrieve lead records by ID or custom unique property.\n\nThis tool fetches lead records from HubSpot CRM using specified record IDs or a custom unique value property if provided. It is useful for obtaining detailed information on leads based on specific identifiers.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_records_input", + "required": true, + "description": "A JSON object containing details such as `idProperty`, `inputs`, and `properties` for retrieving lead records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Return only results that have been archived. Set to 'true' to filter by archived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "lead_records_input", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLimitApproachingRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLimitApproachingRecords.json new file mode 100644 index 00000000..3fa6e17b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLimitApproachingRecords.json @@ -0,0 +1,138 @@ +{ + "name": "RetrieveLimitApproachingRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveLimitApproachingRecords@0.1.0", + "description": "Retrieve objects nearing or at HubSpot CRM association limits.\n\nThis tool is called to get objects from HubSpot CRM that have records close to or at their association limits. It helps in monitoring and managing association constraints.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/limits/associations/records/from'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/limits/associations/records/from", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLineItemsPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLineItemsPage.json new file mode 100644 index 00000000..80d239dd --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveLineItemsPage.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveLineItemsPage", + "fully_qualified_name": "HubspotCrmApi.RetrieveLineItemsPage@0.1.0", + "description": "Retrieve a page of line items from HubSpot CRM.\n\nUse this tool to read a specific page of line items from HubSpot CRM. You can control the details returned using the `properties` query parameter to tailor the response to your needs.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "max_results_per_page", + "required": false, + "description": "Sets the maximum number of line items to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "pagination_cursor_after", + "required": false, + "description": "The cursor token from the last page to retrieve the next set of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "include_properties", + "required": false, + "description": "List the properties to include in the response, separated by commas. Ignored if not present.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "A list of property names to return with their value history. This reduces the max line items per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of line items that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs. Nonexistent associations are ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived", + "required": false, + "description": "Set to true to return only archived results. False returns non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/line_items_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "max_results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor_after", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "include_properties", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of line items that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of line items that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveMeetingRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveMeetingRecords.json new file mode 100644 index 00000000..a9b2d686 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveMeetingRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveMeetingRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveMeetingRecords@0.1.0", + "description": "Retrieve meeting records by ID or unique property.\n\nUse this tool to retrieve HubSpot CRM meeting records by specifying record IDs or a custom unique value property. It helps in accessing specific meeting details efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_record_details", + "required": true, + "description": "JSON object containing meeting records' details, including properties, history, and ID parameters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived_results", + "required": false, + "description": "Set to true to retrieve only archived meeting records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_results", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "meeting_record_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesPage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesPage.json new file mode 100644 index 00000000..a53a3dca --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesPage.json @@ -0,0 +1,274 @@ +{ + "name": "RetrieveNotesPage", + "fully_qualified_name": "HubspotCrmApi.RetrieveNotesPage@0.1.0", + "description": "Retrieve a page of notes from HubSpot CRM.\n\nUse this tool to read a page of notes from HubSpot CRM. You can control the properties returned via query parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "results_per_page", + "required": false, + "description": "The maximum number of note results to display per page. Specify an integer value.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "paging_cursor_token", + "required": false, + "description": "Token for paging to retrieve the next set of notes. Use the token from `paging.next.after` in the previous response.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "returned_properties_list", + "required": false, + "description": "List of note properties to include in the response. Specify as an array of strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + }, + { + "name": "properties_with_history", + "required": false, + "description": "List of properties to return with their historical values. Reduces the maximum number of notes per request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of notes that can be read by a single request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertiesWithHistory" + }, + { + "name": "associated_object_types", + "required": false, + "description": "List of object types to retrieve associated IDs for. Non-existent associations will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "inferrable": true, + "http_endpoint_parameter_name": "associations" + }, + { + "name": "return_only_archived_notes", + "required": false, + "description": "Set to True to return only archived notes; otherwise, non-archived notes are returned.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/objects/notes_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "returned_properties_list", + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertiesWithHistory", + "tool_parameter_name": "properties_with_history", + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of notes that can be read by a single request.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of notes that can be read by a single request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "associations", + "tool_parameter_name": "associated_object_types", + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_notes", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesRecords.json new file mode 100644 index 00000000..e9eb6eb5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveNotesRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveNotesRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveNotesRecords@0.1.0", + "description": "Retrieve notes records by ID or custom property.\n\nThis tool retrieves records from HubSpot CRM using either record IDs or a custom unique value property specified by the `idProperty` parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "notes_retrieval_details", + "required": true, + "description": "A JSON object specifying the properties to retrieve. Include `idProperty` if using a custom unique identifier, and use `inputs` to specify the records.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived records. Use false to include non-archived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "notes_retrieval_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnerDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnerDetails.json new file mode 100644 index 00000000..578f3abb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnerDetails.json @@ -0,0 +1,181 @@ +{ + "name": "RetrieveOwnerDetails", + "fully_qualified_name": "HubspotCrmApi.RetrieveOwnerDetails@0.1.0", + "description": "Retrieve details of a specific CRM owner by ID.\n\nThis tool retrieves details of a specific owner in the HubSpot CRM using either their 'id' or 'userId'. Use it when you need comprehensive information about a particular CRM owner.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "owner_id", + "required": true, + "description": "The unique ID of the CRM owner. Use this to retrieve the owner's details.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ownerId" + }, + { + "name": "owner_id_type", + "required": false, + "description": "Specify whether the 'ownerId' refers to an 'id' or 'userId'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "id", + "userId" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + }, + { + "name": "include_archived", + "required": false, + "description": "Set to true to include archived owners in the retrieved details.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/owners/{ownerId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.owners.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/owners/{ownerId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "owner_id_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "id", + "userId" + ], + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": "id", + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_archived", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "ownerId", + "tool_parameter_name": "owner_id", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnersList.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnersList.json new file mode 100644 index 00000000..689be432 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveOwnersList.json @@ -0,0 +1,208 @@ +{ + "name": "RetrieveOwnersList", + "fully_qualified_name": "HubspotCrmApi.RetrieveOwnersList@0.1.0", + "description": "Retrieve a list of owners from the HubSpot CRM account.\n\nUse this tool to obtain a paginated list of all owners available in a HubSpot CRM account. This can be useful for managing owner-related data or assignments.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "filter_by_email", + "required": false, + "description": "Specify an email address to filter the list of owners returned. Only the owner with this exact email will be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "email" + }, + { + "name": "pagination_cursor_after", + "required": false, + "description": "A cursor to get the next page of results, indicating the last result shown from the previous request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "owners_list_limit", + "required": false, + "description": "The maximum number of owners to return per page. Provide an integer value.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "include_archived", + "required": false, + "description": "Set to true to include archived owners in the retrieved list.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/owners/'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.owners.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/owners/", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "email", + "tool_parameter_name": "filter_by_email", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor_after", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "owners_list_limit", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 100, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "include_archived", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrievePartnerServicesRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrievePartnerServicesRecords.json new file mode 100644 index 00000000..f311adaa --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrievePartnerServicesRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrievePartnerServicesRecords", + "fully_qualified_name": "HubspotCrmApi.RetrievePartnerServicesRecords@0.1.0", + "description": "Retrieve partner services records by ID or unique property.\n\nThis tool retrieves records for partner services using either a record ID or a custom unique value property. It is ideal for accessing specific partner service data within the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_services_query", + "required": true, + "description": "A JSON object containing query details for retrieving partner services records. Include 'idProperty' for custom retrieval, or provide 'inputs' with record IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_only_archived_records", + "required": false, + "description": "Set to true to return only the archived records. False will include non-archived records.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/partner_services/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_only_archived_records", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "partner_services_query", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveQuotesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveQuotesBatch.json new file mode 100644 index 00000000..bf21941e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveQuotesBatch.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveQuotesBatch", + "fully_qualified_name": "HubspotCrmApi.RetrieveQuotesBatch@0.1.0", + "description": "Retrieve multiple quotes by ID or custom property.\n\nThis tool retrieves multiple quote records by their IDs or a custom unique value property. It should be called when you need to access specific quotes in batch format from the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_retrieval_criteria", + "required": true, + "description": "JSON object specifying properties to retrieve quotes by ID or custom property. Use 'idProperty' for custom property and 'inputs' for IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "archived_results_only", + "required": false, + "description": "Specify `true` to return only archived results; `false` to include non-archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "archived_results_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "quote_retrieval_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveSubscriptionRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveSubscriptionRecords.json new file mode 100644 index 00000000..cac62f2b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveSubscriptionRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveSubscriptionRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveSubscriptionRecords@0.1.0", + "description": "Retrieve subscription records by ID or unique property.\n\nUse this tool to fetch subscription records from HubSpot CRM by providing record IDs or a custom unique value property. Ideal for accessing specific subscription details quickly.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_request_payload", + "required": true, + "description": "Payload containing properties and IDs for retrieving subscription records. Specify `idProperty` for custom unique value retrieval or use `inputs` for record IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "only_archived_records", + "required": false, + "description": "Set to true to return only archived results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.subscriptions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "only_archived_records", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "subscription_request_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTaxRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTaxRecords.json new file mode 100644 index 00000000..9fc48f6d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTaxRecords.json @@ -0,0 +1,226 @@ +{ + "name": "RetrieveTaxRecords", + "fully_qualified_name": "HubspotCrmApi.RetrieveTaxRecords@0.1.0", + "description": "Retrieve tax records by ID or custom property.\n\nUse this tool to retrieve tax records by specifying record IDs or using a custom unique value property. It's useful when you need detailed tax information for specific records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_records_request_data", + "required": true, + "description": "A JSON object containing the details for retrieving tax records. Include 'propertiesWithHistory', 'idProperty', 'inputs', and 'properties'. Use 'idProperty' to specify a custom property for retrieval, or 'inputs' to list record IDs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to retrieve only archived records, false to exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "tax_records_request_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTicketBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTicketBatch.json new file mode 100644 index 00000000..e7fac814 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/RetrieveTicketBatch.json @@ -0,0 +1,222 @@ +{ + "name": "RetrieveTicketBatch", + "fully_qualified_name": "HubspotCrmApi.RetrieveTicketBatch@0.1.0", + "description": "Retrieve a batch of tickets by ID or property value.\n\nUse this tool to fetch a batch of CRM tickets by providing their IDs or a specific unique property value. Ideal for obtaining detailed information about multiple tickets simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_request_batch", + "required": true, + "description": "JSON object specifying the properties, ID property, and input ticket IDs or properties for retrieval.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "return_archived_tickets_only", + "required": false, + "description": "Set to true to return only archived tickets. If false, include non-archived tickets as well.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/read_read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_tickets_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "ticket_request_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "propertiesWithHistory": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object and their histories." + }, + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID." + }, + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs for setting properties for the new object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\",\n \"properties\",\n \"propertiesWithHistory\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"propertiesWithHistory\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object and their histories.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"When using a custom unique value property to retrieve records, the name of the property. Do not include this parameter if retrieving by record ID.\"\n },\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Key-value pairs for setting properties for the new object.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Specifies the input for reading a batch of CRM objects, including arrays of object IDs, requested property names (with optional history), and an optional unique identifying property.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ScheduleListConversion.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ScheduleListConversion.json new file mode 100644 index 00000000..61832df7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/ScheduleListConversion.json @@ -0,0 +1,144 @@ +{ + "name": "ScheduleListConversion", + "fully_qualified_name": "HubspotCrmApi.ScheduleListConversion@0.1.0", + "description": "Schedule or update the conversion of an active list to static.\n\nUse this tool to schedule the conversion of an active list into a static list, or to update an already scheduled conversion. This can be scheduled for a specific date or based on activity in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The ID of the list you want to schedule the conversion for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list to schedule the conversion for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "conversion_scheduling_details", + "required": true, + "description": "JSON object with details like date or activity-based criteria for scheduling the list conversion.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/schedule-conversion'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/schedule-conversion", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The ID of the list to schedule the conversion for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the list to schedule the conversion for." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "conversion_scheduling_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"properties\": {},\n \"oneOf\": [\n {\n \"title\": \"CONVERSION_DATE\",\n \"required\": [\n \"conversionType\",\n \"day\",\n \"month\",\n \"year\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"month\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"year\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"conversionType\": {\n \"type\": \"string\",\n \"default\": \"CONVERSION_DATE\",\n \"enum\": [\n \"CONVERSION_DATE\"\n ]\n },\n \"day\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n },\n {\n \"title\": \"INACTIVITY\",\n \"required\": [\n \"conversionType\",\n \"offset\",\n \"timeUnit\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"offset\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"conversionType\": {\n \"type\": \"string\",\n \"default\": \"INACTIVITY\",\n \"enum\": [\n \"INACTIVITY\"\n ]\n },\n \"timeUnit\": {\n \"type\": \"string\",\n \"enum\": [\n \"DAY\",\n \"WEEK\",\n \"MONTH\"\n ]\n }\n }\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchAppointments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchAppointments.json new file mode 100644 index 00000000..83eb8752 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchAppointments.json @@ -0,0 +1,433 @@ +{ + "name": "SearchAppointments", + "fully_qualified_name": "HubspotCrmApi.SearchAppointments@0.1.0", + "description": "Search for appointments based on specified criteria.\n\nUse this tool to search for appointments in the CRM by specifying various criteria. It is useful for finding specific appointments or lists based on search conditions.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "appointment_search_criteria_type", + "required": true, + "description": "Specify the type of object for the appointment search, such as 'appointments'. This determines the domain within the CRM to be searched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "appointment_search_criteria", + "required": true, + "description": "JSON object containing search filters like query string, result limit, pagination, sorting, properties to include, and filter groups.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "appointment_search_criteria_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "appointment_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"after\",\n \"filterGroups\",\n \"limit\",\n \"properties\",\n \"sorts\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCallsHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCallsHubspot.json new file mode 100644 index 00000000..e9e1f28a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCallsHubspot.json @@ -0,0 +1,335 @@ +{ + "name": "SearchCallsHubspot", + "fully_qualified_name": "HubspotCrmApi.SearchCallsHubspot@0.1.0", + "description": "Search and filter call records in HubSpot CRM.\n\nUse this tool to search for calls in HubSpot CRM by applying filters on properties, searching through associations, and sorting the results. Ideal for retrieving specific call records from your HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "JSON object containing query, limit, sorting, filters, and properties for searching calls. Specify max results, properties to include, and sort order. Use filters to narrow down results.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCommercePayments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCommercePayments.json new file mode 100644 index 00000000..3015eb63 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCommercePayments.json @@ -0,0 +1,335 @@ +{ + "name": "SearchCommercePayments", + "fully_qualified_name": "HubspotCrmApi.SearchCommercePayments@0.1.0", + "description": "Search for commerce payments in HubSpot CRM.\n\nUse this tool to search for commerce payments within the HubSpot CRM. It should be called when you need to retrieve payment information from the CRM database.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_search_request", + "required": true, + "description": "JSON body containing search parameters for commerce payments, including query, limit, pagination, sorting, and filters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "commerce_payment_search_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCompaniesInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCompaniesInHubspot.json new file mode 100644 index 00000000..d185bebf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCompaniesInHubspot.json @@ -0,0 +1,335 @@ +{ + "name": "SearchCompaniesInHubspot", + "fully_qualified_name": "HubspotCrmApi.SearchCompaniesInHubspot@0.1.0", + "description": "Search for companies in HubSpot CRM using filters and sorting.\n\nThis tool allows you to search for companies in HubSpot CRM by applying filters, associating searches, and sorting the results. It is useful for retrieving company information based on specific criteria quickly.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_search_criteria", + "required": true, + "description": "JSON object containing search parameters like query, filters, property inclusion, sorting, and pagination for finding companies in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "company_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchContacts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchContacts.json new file mode 100644 index 00000000..bfd2c9cb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchContacts.json @@ -0,0 +1,335 @@ +{ + "name": "SearchContacts", + "fully_qualified_name": "HubspotCrmApi.SearchContacts@0.1.0", + "description": "Search contacts in HubSpot CRM.\n\nUse this tool to search for contacts within the HubSpot CRM. It is useful for retrieving contact information based on search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_search_criteria", + "required": true, + "description": "Search criteria for finding contacts, including filters, properties, and sorting options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "contact_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"after\",\n \"filterGroups\",\n \"limit\",\n \"properties\",\n \"sorts\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmLeads.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmLeads.json new file mode 100644 index 00000000..2dfce91c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmLeads.json @@ -0,0 +1,335 @@ +{ + "name": "SearchCrmLeads", + "fully_qualified_name": "HubspotCrmApi.SearchCrmLeads@0.1.0", + "description": "Search for leads in HubSpot CRM.\n\nThis tool searches for leads in the HubSpot CRM. Use it when you want to query and retrieve lead information based on specific criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object specifying search parameters like query string, limit, pagination, sorting, properties, and filter groups.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/leads/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmMessages.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmMessages.json new file mode 100644 index 00000000..b8633d75 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmMessages.json @@ -0,0 +1,335 @@ +{ + "name": "SearchCrmMessages", + "fully_qualified_name": "HubspotCrmApi.SearchCrmMessages@0.1.0", + "description": "Search and filter CRM messages based on various criteria.\n\nUse this tool to search for messages in the CRM by applying filters on properties, checking associations, and sorting the results. Ideal for retrieving specific communications data within the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_parameters", + "required": true, + "description": "A JSON object defining the search query, limit, paging cursor token, sorting order, properties to include, and filter groups for HubSpot CRM messages.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_parameters", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmUsers.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmUsers.json new file mode 100644 index 00000000..5ce50d32 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchCrmUsers.json @@ -0,0 +1,335 @@ +{ + "name": "SearchCrmUsers", + "fully_qualified_name": "HubspotCrmApi.SearchCrmUsers@0.1.0", + "description": "Perform a user search in the CRM database.\n\nUse this tool to search for users within the HubSpot CRM. It should be called when you need to retrieve user information based on specific criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object containing search parameters such as query string, limit, sorting order, properties to include, and filters for refining the CRM user search.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDeals.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDeals.json new file mode 100644 index 00000000..7b26411f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDeals.json @@ -0,0 +1,335 @@ +{ + "name": "SearchDeals", + "fully_qualified_name": "HubspotCrmApi.SearchDeals@0.1.0", + "description": "Search for deals using specified criteria and filters.\n\nThis tool searches for deals in the HubSpot CRM using the provided criteria and filters. It should be called when there's a need to find deals that match specific conditions.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_search_criteria", + "required": true, + "description": "JSON containing search query, limits, filters, and sorting options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deal_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDiscounts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDiscounts.json new file mode 100644 index 00000000..9b3acece --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchDiscounts.json @@ -0,0 +1,335 @@ +{ + "name": "SearchDiscounts", + "fully_qualified_name": "HubspotCrmApi.SearchDiscounts@0.1.0", + "description": "Search for discounts in the HubSpot CRM.\n\nUse this tool to search for discount records in the HubSpot CRM. It is useful when you need to find specific discounts based on certain criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object containing search criteria such as query string, limit, paging cursor, sort order, property names, and filter groups to define the search parameters for discounts in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchEmails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchEmails.json new file mode 100644 index 00000000..bc3ce2e4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchEmails.json @@ -0,0 +1,335 @@ +{ + "name": "SearchEmails", + "fully_qualified_name": "HubspotCrmApi.SearchEmails@0.1.0", + "description": "Search for emails based on specified query parameters.\n\nUse this tool to perform a search for emails in the CRM system, returning results that match the given criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_search_parameters", + "required": true, + "description": "A JSON object specifying query, limit, paging, sorting, properties, and filters for searching emails. Includes criteria for finding and sorting email data.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_search_parameters", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeedbackSubmissions.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeedbackSubmissions.json new file mode 100644 index 00000000..f254b08e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeedbackSubmissions.json @@ -0,0 +1,336 @@ +{ + "name": "SearchFeedbackSubmissions", + "fully_qualified_name": "HubspotCrmApi.SearchFeedbackSubmissions@0.1.0", + "description": "Search for feedback submissions in HubSpot CRM.\n\nThis tool allows you to search for feedback submissions within the HubSpot CRM, helping you find specific feedback entries based on your search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "feedback_search_body", + "required": true, + "description": "A JSON object containing parameters like query, limit, after, sorts, properties, and filterGroups for searching feedback submissions. This includes defining search criteria, sorting, and pagination.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/feedback_submissions/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read", + "crm.objects.feedback_submissions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/feedback_submissions/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "feedback_search_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeesInCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeesInCrm.json new file mode 100644 index 00000000..b8ccc359 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchFeesInCrm.json @@ -0,0 +1,335 @@ +{ + "name": "SearchFeesInCrm", + "fully_qualified_name": "HubspotCrmApi.SearchFeesInCrm@0.1.0", + "description": "Search for fees in HubSpot CRM.\n\nUse this tool to search for fees in the HubSpot CRM database. It should be called when you need to find specific fee records based on search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "The search criteria in JSON format, including query, limit, paging token, sorting order, properties to include, and filter groups.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchGoalTargets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchGoalTargets.json new file mode 100644 index 00000000..2a88c850 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchGoalTargets.json @@ -0,0 +1,335 @@ +{ + "name": "SearchGoalTargets", + "fully_qualified_name": "HubspotCrmApi.SearchGoalTargets@0.1.0", + "description": "Search for goal targets using specified criteria.\n\nThis tool allows searching for goal targets within the HubSpot CRM based on specified criteria. Call this tool when you need to locate specific goal targets or retrieve a list based on certain parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_search_criteria", + "required": true, + "description": "A JSON object with search criteria for goal targets, including query, limit, paging, sorting, properties, and filters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "goal_target_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotCarts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotCarts.json new file mode 100644 index 00000000..72f2f1bf --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotCarts.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotCarts", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotCarts@0.1.0", + "description": "Search for carts in HubSpot CRM.\n\nThis tool performs a search query to retrieve cart information from HubSpot CRM. It can be used to find specific carts using various search parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_parameters", + "required": true, + "description": "JSON object containing search query, limit, paging token, sorting order, properties to retrieve, and filter groups for cart search.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_parameters", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotListings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotListings.json new file mode 100644 index 00000000..8e4400c6 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotListings.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotListings", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotListings@0.1.0", + "description": "Search listings in HubSpot CRM using filters and properties.\n\nUse this tool to execute a search query in HubSpot CRM to find listings. You can specify various filters and properties to refine your search results.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "JSON object defining search filters, properties, sorting, and pagination for HubSpot listings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotLists.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotLists.json new file mode 100644 index 00000000..49d23f71 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotLists.json @@ -0,0 +1,307 @@ +{ + "name": "SearchHubspotLists", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotLists@0.1.0", + "description": "Search HubSpot CRM lists by name or page through all lists.\n\nThis tool allows searching for specific lists within the HubSpot CRM by list name. Alternatively, you can page through all lists by providing an empty query. It's useful for retrieving specific list data or browsing all available lists.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "filter_by_list_ids", + "required": false, + "description": "An array of list IDs to filter search results. If not provided or empty, no filter is applied.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listIds" + }, + { + "name": "start_offset", + "required": false, + "description": "The starting point for pagination of list results. Defaults to `0` if not provided.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided." + }, + "inferrable": true, + "http_endpoint_parameter_name": "offset" + }, + { + "name": "search_query", + "required": false, + "description": "The term to search for lists by name. Returns all lists if empty.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists." + }, + "inferrable": true, + "http_endpoint_parameter_name": "query" + }, + { + "name": "number_of_lists_to_return", + "required": false, + "description": "The number of lists to include in the response. Defaults to 20 if not provided, with a maximum of 500.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "count" + }, + { + "name": "filter_by_processing_types", + "required": false, + "description": "List of processing types to filter results. Valid values: 'MANUAL', 'SNAPSHOT', 'DYNAMIC'. If omitted, no filtering by processing type is applied.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "processingTypes" + }, + { + "name": "include_additional_list_properties", + "required": false, + "description": "Specify additional list properties to include in the response. Defaults fetch standard properties like `hs_list_size` and others.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "additionalProperties" + }, + { + "name": "sort_order", + "required": false, + "description": "Specify the order in which the lists should be sorted. Acceptable values could be 'asc' for ascending or 'desc' for descending order.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/lists/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "listIds", + "tool_parameter_name": "filter_by_list_ids", + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\n\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "offset", + "tool_parameter_name": "start_offset", + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "query", + "tool_parameter_name": "search_query", + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "count", + "tool_parameter_name": "number_of_lists_to_return", + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "processingTypes", + "tool_parameter_name": "filter_by_processing_types", + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\n\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\n\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "additionalProperties", + "tool_parameter_name": "include_additional_list_properties", + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\n\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_order", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"The IDs of the records to add and/or remove from the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"listIds\": {\n \"type\": \"array\",\n \"description\": \"The `listIds` that will be used to filter results by `listId`. If values are provided, then the response will only include results that have a `listId` in this array.\\n\\nIf no value is provided, or if an empty list is provided, then the results will not be filtered by `listId`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"offset\": {\n \"type\": \"integer\",\n \"description\": \"Value used to paginate through lists. The `offset` provided in the response can be used in the next request to fetch the next page of results. Defaults to `0` if no offset is provided.\",\n \"format\": \"int32\"\n },\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The `query` that will be used to search for lists by list name. If no `query` is provided, then the results will include all lists.\"\n },\n \"count\": {\n \"type\": \"integer\",\n \"description\": \"The number of lists to include in the response. Defaults to `20` if no value is provided. The max `count` is `500`.\",\n \"format\": \"int32\"\n },\n \"processingTypes\": {\n \"type\": \"array\",\n \"description\": \"The `processingTypes` that will be used to filter results by `processingType`. If values are provided, then the response will only include results that have a `processingType` in this array.\\n\\nIf no value is provided, or if an empty list is provided, then results will not be filtered by `processingType`.\\n\\nValid `processingTypes` are: `MANUAL`, `SNAPSHOT`, or `DYNAMIC`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"type\": \"array\",\n \"description\": \"The property names of any additional list properties to include in the response. Properties that do not exist or that are empty for a particular list are not included in the response.\\n\\nBy default, all requests will fetch the following properties for each list: `hs_list_size`, `hs_last_record_added_at`, `hs_last_record_removed_at`, `hs_folder_name`, and `hs_list_reference_count`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sort\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"The request object used for searching through lists.\",\n \"example\": {\n \"additionalProperties\": [\n \"hs_list_size_week_delta\"\n ],\n \"count\": 100,\n \"offset\": 0,\n \"query\": \"Test\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotMeetings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotMeetings.json new file mode 100644 index 00000000..84898822 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotMeetings.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotMeetings", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotMeetings@0.1.0", + "description": "Search for meetings in HubSpot CRM.\n\nUse this tool to search for meetings stored in the HubSpot CRM. It should be called whenever there is a need to locate meetings based on specific criteria within the HubSpot platform.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object containing search query, limit, paging cursor, sorting options, property selection, and filter groups for HubSpot meetings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotNotes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotNotes.json new file mode 100644 index 00000000..3286529b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotNotes.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotNotes", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotNotes@0.1.0", + "description": "Search for notes in HubSpot CRM.\n\nUse this tool to search for specific notes within HubSpot CRM. It should be called when you need to find and retrieve notes based on particular search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_request_body", + "required": true, + "description": "The search criteria for notes in HubSpot. This includes query string, limits, paging, sorting, and filtering details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotObjects.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotObjects.json new file mode 100644 index 00000000..495f0720 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotObjects.json @@ -0,0 +1,433 @@ +{ + "name": "SearchHubspotObjects", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotObjects@0.1.0", + "description": "Perform a search on HubSpot CRM objects by type.\n\nUse this tool to search for objects in HubSpot CRM by specifying the object type. It helps in locating contacts, companies, deals, and other entities based on defined criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specify the type of object to search for in HubSpot, such as contacts, companies, or deals.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "search_criteria", + "required": true, + "description": "JSON object specifying the search query, filters, limits, sorting, and properties to include in the results for a HubSpot CRM search.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotPayments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotPayments.json new file mode 100644 index 00000000..643a90fb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotPayments.json @@ -0,0 +1,331 @@ +{ + "name": "SearchHubspotPayments", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotPayments@0.1.0", + "description": "Search for payments in HubSpot CRM.\n\nUse this tool to search for specific payments within the HubSpot CRM. It should be called when you need to locate payments based on specific criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "payment_search_criteria", + "required": true, + "description": "Criteria for searching payments, including query, limit, pagination, sorting, and filters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/payments/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": null + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/payments/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "payment_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"after\",\n \"filterGroups\",\n \"limit\",\n \"properties\",\n \"sorts\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotProducts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotProducts.json new file mode 100644 index 00000000..c0613aa7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotProducts.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotProducts", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotProducts@0.1.0", + "description": "Search for products in HubSpot CRM.\n\nUse this tool to search for and retrieve product information from HubSpot CRM. It calls the endpoint designed to query products based on specified criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "JSON object containing search parameters such as query, limit, paging cursor, sorting order, properties to return, and filter groups for product search in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotSubscriptions.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotSubscriptions.json new file mode 100644 index 00000000..f933810a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotSubscriptions.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotSubscriptions", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotSubscriptions@0.1.0", + "description": "Search for subscriptions in HubSpot CRM.\n\nUse this tool to search and retrieve details of specific subscriptions from HubSpot CRM based on given criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object containing query, filters, sorting options, and properties to refine the subscription search in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.subscriptions.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotTasks.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotTasks.json new file mode 100644 index 00000000..36ce82f9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchHubspotTasks.json @@ -0,0 +1,335 @@ +{ + "name": "SearchHubspotTasks", + "fully_qualified_name": "HubspotCrmApi.SearchHubspotTasks@0.1.0", + "description": "Search for tasks in HubSpot CRM.\n\nUse this tool to search for tasks within HubSpot CRM. It should be called when you need to find specific tasks based on certain search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_search_criteria", + "required": true, + "description": "A JSON object containing search criteria such as query strings, limit, sort order, properties, and filters to query tasks in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "task_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchInvoices.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchInvoices.json new file mode 100644 index 00000000..fef9868c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchInvoices.json @@ -0,0 +1,335 @@ +{ + "name": "SearchInvoices", + "fully_qualified_name": "HubspotCrmApi.SearchInvoices@0.1.0", + "description": "Find invoices in the HubSpot CRM.\n\nUse this tool to search and retrieve invoices from the HubSpot CRM based on specific criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_search_criteria", + "required": true, + "description": "The parameters for searching invoices, including query string, result limits, pagination, sorting, property filters, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "invoice_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchLineItems.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchLineItems.json new file mode 100644 index 00000000..45076b90 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchLineItems.json @@ -0,0 +1,335 @@ +{ + "name": "SearchLineItems", + "fully_qualified_name": "HubspotCrmApi.SearchLineItems@0.1.0", + "description": "Search for line items in HubSpot CRM.\n\nUse this tool to search for line items within HubSpot CRM. It should be called when you need to retrieve specific line items based on search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_items_search_criteria", + "required": true, + "description": "JSON object containing search criteria, such as query string, filters, sort orders, and properties to include for line items in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "line_items_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchOrderRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchOrderRecords.json new file mode 100644 index 00000000..1aa12a09 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchOrderRecords.json @@ -0,0 +1,335 @@ +{ + "name": "SearchOrderRecords", + "fully_qualified_name": "HubspotCrmApi.SearchOrderRecords@0.1.0", + "description": "Search for order records in HubSpot CRM.\n\nThis tool searches order records in HubSpot CRM based on specified criteria. It should be called when you need to find specific order details or filter orders according to certain conditions.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_search_criteria", + "required": true, + "description": "JSON object containing criteria for searching order records in HubSpot CRM, including query, sorting, paging, and filters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "order_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerClients.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerClients.json new file mode 100644 index 00000000..2c2f8c05 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerClients.json @@ -0,0 +1,335 @@ +{ + "name": "SearchPartnerClients", + "fully_qualified_name": "HubspotCrmApi.SearchPartnerClients@0.1.0", + "description": "Perform a search for partner clients in CRM.\n\nUse this tool to search for partner clients within the HubSpot CRM system. It should be called when you need to find specific partner client information or records based on search criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_clients_search_criteria", + "required": true, + "description": "A JSON object containing search criteria for partner clients, including query, limit, paging, sorting, properties, and filter groups.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/partner_clients/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "partner_clients_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerServicesHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerServicesHubspot.json new file mode 100644 index 00000000..ebd7b2a5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPartnerServicesHubspot.json @@ -0,0 +1,335 @@ +{ + "name": "SearchPartnerServicesHubspot", + "fully_qualified_name": "HubspotCrmApi.SearchPartnerServicesHubspot@0.1.0", + "description": "Search for partner services in HubSpot CRM.\n\nUse this tool to perform a search for partner services within the HubSpot CRM. It can be called when you need to find specific partner services based on given criteria or parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_services_search_request", + "required": true, + "description": "JSON object containing search parameters such as query, limit, properties to include, sorting options, and filtering criteria for searching partner services.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/partner_services/search'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "partner_services_search_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPostalMailHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPostalMailHubspot.json new file mode 100644 index 00000000..c93352c3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchPostalMailHubspot.json @@ -0,0 +1,335 @@ +{ + "name": "SearchPostalMailHubspot", + "fully_qualified_name": "HubspotCrmApi.SearchPostalMailHubspot@0.1.0", + "description": "Search for postal mail objects in HubSpot CRM.\n\nUse this tool to search for postal mail records in HubSpot CRM based on specific criteria. This is useful when you need to retrieve details about postal interactions stored within the CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object defining the search criteria, including query, limit, paging, sorting, and filtering options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchQuotesInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchQuotesInHubspot.json new file mode 100644 index 00000000..11e0b987 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchQuotesInHubspot.json @@ -0,0 +1,335 @@ +{ + "name": "SearchQuotesInHubspot", + "fully_qualified_name": "HubspotCrmApi.SearchQuotesInHubspot@0.1.0", + "description": "Search for quotes in HubSpot CRM.\n\nUse this tool to perform a search for quotes stored in HubSpot CRM. Useful for retrieving information about sales quotes based on specific criteria or parameters.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "JSON object containing the search criteria for quotes. Includes query string, limit, paging, sorting options, properties to include, and filter groups.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTaxes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTaxes.json new file mode 100644 index 00000000..3b05ca05 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTaxes.json @@ -0,0 +1,335 @@ +{ + "name": "SearchTaxes", + "fully_qualified_name": "HubspotCrmApi.SearchTaxes@0.1.0", + "description": "Search for tax entries within HubSpot CRM.\n\nUse this tool to find specific tax records in HubSpot CRM based on search criteria. It returns relevant tax entries from the CRM database.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "search_criteria", + "required": true, + "description": "A JSON object defining search criteria, including query, limit, sorts, and filters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTickets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTickets.json new file mode 100644 index 00000000..c55b92b2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SearchTickets.json @@ -0,0 +1,335 @@ +{ + "name": "SearchTickets", + "fully_qualified_name": "HubspotCrmApi.SearchTickets@0.1.0", + "description": "Search and filter CRM tickets based on properties and associations.\n\nUtilize this tool to search for tickets within the CRM by applying specific filters on properties, examining associations, and sorting the results. Ideal for retrieving detailed ticket information based on particular criteria.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_search_criteria", + "required": true, + "description": "JSON object containing the criteria for ticket search, including query string, sort options, pagination, and filters.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/search", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_search_criteria", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The search query string, up to 3000 characters." + }, + "limit": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum results to return, up to 200 objects." + }, + "after": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A paging cursor token for retrieving subsequent pages." + }, + "sorts": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies sorting order based on object properties." + }, + "properties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A list of property names to include in the response." + }, + "filterGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "filters": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "highValue": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The upper boundary value when using ranged-based filters." + }, + "propertyName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property to apply the filter to." + }, + "values": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The values to match against the property." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The value to match against the property." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "EQ", + "NEQ", + "LT", + "LTE", + "GT", + "GTE", + "BETWEEN", + "IN", + "NOT_IN", + "HAS_PROPERTY", + "NOT_HAS_PROPERTY", + "CONTAINS_TOKEN", + "NOT_CONTAINS_TOKEN" + ], + "properties": null, + "inner_properties": null, + "description": "null" + } + }, + "description": null + } + }, + "description": "Up to 6 groups of filters defining additional query criteria." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The search query string, up to 3000 characters.\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"The maximum results to return, up to 200 objects.\",\n \"format\": \"int32\"\n },\n \"after\": {\n \"type\": \"string\",\n \"description\": \"A paging cursor token for retrieving subsequent pages.\"\n },\n \"sorts\": {\n \"type\": \"array\",\n \"description\": \"Specifies sorting order based on object properties.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"A list of property names to include in the response.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"filterGroups\": {\n \"type\": \"array\",\n \"description\": \"Up to 6 groups of filters defining additional query criteria.\",\n \"items\": {\n \"required\": [\n \"filters\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"filters\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"operator\",\n \"propertyName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"highValue\": {\n \"type\": \"string\",\n \"description\": \"The upper boundary value when using ranged-based filters.\"\n },\n \"propertyName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property to apply the filter to.\"\n },\n \"values\": {\n \"type\": \"array\",\n \"description\": \"The values to match against the property.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value to match against the property.\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"null\",\n \"enum\": [\n \"EQ\",\n \"NEQ\",\n \"LT\",\n \"LTE\",\n \"GT\",\n \"GTE\",\n \"BETWEEN\",\n \"IN\",\n \"NOT_IN\",\n \"HAS_PROPERTY\",\n \"NOT_HAS_PROPERTY\",\n \"CONTAINS_TOKEN\",\n \"NOT_CONTAINS_TOKEN\"\n ]\n }\n },\n \"description\": \"Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. \"\n }\n }\n }\n }\n }\n },\n \"description\": \"Describes a search request\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SendEventToHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SendEventToHubspot.json new file mode 100644 index 00000000..8a3a3ba9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/SendEventToHubspot.json @@ -0,0 +1,368 @@ +{ + "name": "SendEventToHubspot", + "fully_qualified_name": "HubspotCrmApi.SendEventToHubspot@0.1.0", + "description": "Send event data to a specified HubSpot event type.\n\nThis tool is used to send a single instance of event data to a specified event type in HubSpot CRM. It should be called when there's a need to submit event data to HubSpot for tracking or analysis.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_definition", + "required": true, + "description": "A JSON object defining the timeline event with details such as event template ID, additional data, iframe details, domain, tokens, event identifier, user token, email, CRM object ID, and timestamp.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "eventTemplateId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "extraData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "linkLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The width of the modal window in pixels." + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI of the iframe contents." + }, + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The height of the modal window in pixels." + } + }, + "inner_properties": null, + "description": null + }, + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline." + } + }, + "inner_properties": null, + "description": "The timeline event definition." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/integrators/timeline/v3/events_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.deals.write", + "crm.objects.contacts.write", + "crm.objects.companies.highly_sensitive.write.v2", + "tickets.sensitive.v2", + "tickets.highly_sensitive.v2", + "crm.schemas.companies.write", + "crm.objects.companies.write", + "tickets", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.schemas.contacts.write", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.contacts.highly_sensitive.write.v2", + "timeline", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.deals.sensitive.write.v2" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/integrators/timeline/v3/events", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "event_definition", + "description": "The timeline event definition.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "eventTemplateId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event template ID." + }, + "extraData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional event-specific data that can be interpreted by the template's markdown." + }, + "timelineIFrame": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "linkLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displaying the link that will display the iframe." + }, + "headerLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The label of the modal window that displays the iframe contents." + }, + "width": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The width of the modal window in pixels." + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The URI of the iframe contents." + }, + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The height of the modal window in pixels." + } + }, + "inner_properties": null, + "description": null + }, + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The event domain (often paired with utk)." + }, + "tokens": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A collection of token keys and values associated with the template tokens." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness." + }, + "utk": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie." + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`)." + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The CRM object identifier. This is required for every event other than contacts (where utk or email can be used)." + }, + "timestamp": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline." + } + }, + "inner_properties": null, + "description": "The timeline event definition." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"The timeline event definition.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"eventTemplateId\",\n \"tokens\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"eventTemplateId\": {\n \"type\": \"string\",\n \"description\": \"The event template ID.\"\n },\n \"extraData\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional event-specific data that can be interpreted by the template's markdown.\"\n },\n \"timelineIFrame\": {\n \"required\": [\n \"headerLabel\",\n \"height\",\n \"linkLabel\",\n \"url\",\n \"width\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"linkLabel\": {\n \"type\": \"string\",\n \"description\": \"The text displaying the link that will display the iframe.\"\n },\n \"headerLabel\": {\n \"type\": \"string\",\n \"description\": \"The label of the modal window that displays the iframe contents.\"\n },\n \"width\": {\n \"type\": \"integer\",\n \"description\": \"The width of the modal window in pixels.\",\n \"format\": \"int32\"\n },\n \"url\": {\n \"type\": \"string\",\n \"description\": \"The URI of the iframe contents.\"\n },\n \"height\": {\n \"type\": \"integer\",\n \"description\": \"The height of the modal window in pixels.\",\n \"format\": \"int32\"\n }\n },\n \"example\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n },\n \"domain\": {\n \"type\": \"string\",\n \"description\": \"The event domain (often paired with utk).\"\n },\n \"tokens\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A collection of token keys and values associated with the template tokens.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identifier for the event. This is optional, and we recommend you do not pass this in. We will create one for you if you omit this. You can also use `{{uuid}}` anywhere in the ID to generate a unique string, guaranteeing uniqueness.\"\n },\n \"utk\": {\n \"type\": \"string\",\n \"description\": \"Use the `utk` parameter to associate an event with a contact by `usertoken`. This is recommended if you don't know a user's email, but have an identifying user token in your cookie.\"\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address used for contact-specific events. This can be used to identify existing contacts, create new ones, or change the email for an existing contact (if paired with the `objectId`).\"\n },\n \"objectId\": {\n \"type\": \"string\",\n \"description\": \"The CRM object identifier. This is required for every event other than contacts (where utk or email can be used).\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"description\": \"The time the event occurred. If not passed in, the curren time will be assumed. This is used to determine where an event is shown on a CRM object's timeline.\",\n \"format\": \"date-time\"\n }\n },\n \"description\": \"The state of the timeline event.\",\n \"example\": {\n \"eventTemplateId\": \"1001298\",\n \"email\": \"art3mis-pup@petspot.com\",\n \"tokens\": {\n \"petName\": \"Art3mis\",\n \"petAge\": 3,\n \"petColor\": \"black\"\n },\n \"extraData\": {\n \"questions\": [\n {\n \"question\": \"Who's a good girl?\",\n \"answer\": \"Bark!\"\n },\n {\n \"question\": \"Do you wanna go on a walk?\",\n \"answer\": \"Woof!\"\n }\n ]\n },\n \"timelineIFrame\": {\n \"linkLabel\": \"View Art3mis\",\n \"headerLabel\": \"Art3mis dog\",\n \"url\": \"https://my.petspot.com/pets/Art3mis\",\n \"width\": 600,\n \"height\": 400\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyListIdsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyListIdsBatch.json new file mode 100644 index 00000000..9f2d9ab4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyListIdsBatch.json @@ -0,0 +1,109 @@ +{ + "name": "TranslateLegacyListIdsBatch", + "fully_qualified_name": "HubspotCrmApi.TranslateLegacyListIdsBatch@0.1.0", + "description": "Translate legacy list IDs to new list IDs in batch.\n\nUse this tool to convert a large number (up to 10,000) of legacy list IDs to the current list ID format. This tool is essential for data migration purposes and is available until May 30th, 2025.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "legacy_list_ids", + "required": true, + "description": "An array of legacy list IDs to be translated to new IDs, supporting up to 10,000 strings.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/lists/idmapping_translateLegacyListIdToListIdBatch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/idmapping", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "legacy_list_ids", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyToNewListId.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyToNewListId.json new file mode 100644 index 00000000..ba14b009 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/TranslateLegacyToNewListId.json @@ -0,0 +1,109 @@ +{ + "name": "TranslateLegacyToNewListId", + "fully_qualified_name": "HubspotCrmApi.TranslateLegacyToNewListId@0.1.0", + "description": "Translate legacy list ID to the new list ID format.\n\nThis tool translates a legacy list ID to the new list ID format using HubSpot CRM's temporary API. It is useful for mapping old list IDs to new ones before the API expires on May 30th, 2025.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "legacy_list_id", + "required": false, + "description": "The legacy list ID from the lists v1 API to be translated to the new format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The legacy list id from lists v1 API." + }, + "inferrable": true, + "http_endpoint_parameter_name": "legacyListId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/crm/v3/lists/idmapping_translateLegacyListIdToListId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/idmapping", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "legacyListId", + "tool_parameter_name": "legacy_list_id", + "description": "The legacy list id from lists v1 API.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The legacy list id from lists v1 API." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchCalls.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchCalls.json new file mode 100644 index 00000000..9b7aac0d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchCalls.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchCalls", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchCalls@0.1.0", + "description": "Update multiple calls in HubSpot CRM by ID.\n\nThis tool updates a batch of call records in HubSpot CRM using their IDs. Use it to modify details of multiple calls efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_update_request", + "required": true, + "description": "JSON object containing an array of call updates with 'id', 'idProperty', 'objectWriteTraceId', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_update_request", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchContacts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchContacts.json new file mode 100644 index 00000000..ca2942d3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchContacts.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchContacts", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchContacts@0.1.0", + "description": "Update a batch of contacts in HubSpot CRM.\n\nUse this tool to update multiple contacts simultaneously in HubSpot CRM. It is helpful when you need to make changes to several contact records at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contacts_batch_update_data", + "required": true, + "description": "JSON array of contact objects with unique identifiers and properties to update in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "contacts_batch_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchEmails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchEmails.json new file mode 100644 index 00000000..4bc374d4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchEmails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchEmails", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchEmails@0.1.0", + "description": "Update a batch of emails by their IDs or unique properties.\n\nUse this tool to update multiple emails in bulk using their internal IDs or unique property values in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_batch_update_data", + "required": true, + "description": "JSON object containing arrays of email updates, each with `idProperty`, `objectWriteTraceId`, `id`, and `properties` fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/emails/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_batch_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchFees.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchFees.json new file mode 100644 index 00000000..67f8a69f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchFees.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchFees", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchFees@0.1.0", + "description": "Update multiple fees by internal ID or unique properties.\n\nUse this tool to update a batch of fees in HubSpot CRM by specifying internal IDs or unique property values. Call this tool when you need to make bulk updates to fee records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_fee_updates", + "required": true, + "description": "JSON object containing a list of fee updates. Each update includes properties like 'id', 'idProperty', 'properties', and 'objectWriteTraceId'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_fee_updates", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchGoalTargets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchGoalTargets.json new file mode 100644 index 00000000..53ba9678 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchGoalTargets.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchGoalTargets", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchGoalTargets@0.1.0", + "description": "Update multiple goal targets in HubSpot CRM.\n\nUse this tool to update several goal targets simultaneously in HubSpot CRM using their internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_targets_update_data", + "required": true, + "description": "A JSON array of objects, each containing `id`, `idProperty`, `objectWriteTraceId`, and `properties` to specify which goal targets to update and their new values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "goal_targets_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchOfCompanies.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchOfCompanies.json new file mode 100644 index 00000000..03a7d357 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchOfCompanies.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchOfCompanies", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchOfCompanies@0.1.0", + "description": "Update multiple company records in HubSpot by ID.\n\nThis tool allows batch updating of company records in the HubSpot CRM. It should be called when there is a need to update information for multiple companies at once, using their unique IDs.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "companies_update_payload", + "required": true, + "description": "JSON array of company objects, each with 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/companies/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "companies_update_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTasks.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTasks.json new file mode 100644 index 00000000..36566a3d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTasks.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchTasks", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchTasks@0.1.0", + "description": "Update a batch of tasks in HubSpot CRM.\n\nUse this tool to update multiple tasks in HubSpot CRM by their internal ID or unique property values. It should be called when you need to modify several tasks at once, such as changing task details or status across multiple entries.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_update_requests", + "required": true, + "description": "A JSON array containing objects with task update details. Each object includes an 'id' or 'idProperty', 'properties' for new values, and an optional 'objectWriteTraceId'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "task_update_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTaxes.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTaxes.json new file mode 100644 index 00000000..91a48cf3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateBatchTaxes.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateBatchTaxes", + "fully_qualified_name": "HubspotCrmApi.UpdateBatchTaxes@0.1.0", + "description": "Update taxes in batch using IDs or unique values.\n\nCall this tool to update multiple tax records at once in HubSpot CRM using either internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "batch_taxes_update_payload", + "required": true, + "description": "JSON payload for updating batch taxes, including IDs or unique property values, property updates, and tracing ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/taxes/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "batch_taxes_update_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCallInfo.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCallInfo.json new file mode 100644 index 00000000..c4918c68 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCallInfo.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCallInfo", + "fully_qualified_name": "HubspotCrmApi.UpdateCallInfo@0.1.0", + "description": "Update details of a specific call record in the CRM.\n\nUse this tool to perform a partial update of a call object in the HubSpot CRM using its `{callId}` or a unique property. Only provided properties will be updated. Read-only and non-existent properties will cause errors.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "call_identifier", + "required": true, + "description": "The identifier for the call object you wish to update. This can be the internal call ID or a unique value defined by the `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "callId" + }, + { + "name": "call_update_properties", + "required": true, + "description": "JSON object with key-value pairs for call property updates. Use property names as keys.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property for identifying the call object, other than the default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/calls/{callId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/{callId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "callId", + "tool_parameter_name": "call_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "call_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartProperties.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartProperties.json new file mode 100644 index 00000000..47d66476 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartProperties.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCartProperties", + "fully_qualified_name": "HubspotCrmApi.UpdateCartProperties@0.1.0", + "description": "Update specific properties of a cart in HubSpot CRM.\n\nThis tool updates specified properties of a cart identified by `cartId` within HubSpot CRM. It's used to perform partial updates, where provided property values are overwritten, and any attempt to modify read-only or non-existent properties will result in an error. Properties can be cleared by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_identifier", + "required": true, + "description": "The unique identifier of the cart to be updated. This is required to specify which cart's properties will be modified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "cartId" + }, + { + "name": "cart_property_updates", + "required": true, + "description": "JSON object with key-value pairs representing the cart properties to update. Keys are property names and values are the new values, or an empty string to clear.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_identifier_property", + "required": false, + "description": "The name of the property with unique values for this cart object to identify it.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/carts/{cartId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/{cartId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_identifier_property", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "cartId", + "tool_parameter_name": "cart_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "cart_property_updates", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartsBatch.json new file mode 100644 index 00000000..df7cbe45 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCartsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCartsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateCartsBatch@0.1.0", + "description": "Update a batch of carts by internal ID or unique properties.\n\nUse this tool to update multiple carts in HubSpot CRM by their internal IDs or unique property values. Useful for synchronizing cart information in bulk.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "carts_update_data", + "required": true, + "description": "JSON object containing an array of cart updates. Each update includes an `id` (either internal ID or unique property), `idProperty` (name of the unique property), `objectWriteTraceId` (request identifier), and `properties` (key-value pairs for cart properties).", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "carts_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePayment.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePayment.json new file mode 100644 index 00000000..1f4dbe6b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePayment.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCommercePayment", + "fully_qualified_name": "HubspotCrmApi.UpdateCommercePayment@0.1.0", + "description": "Partially update a commerce payment by ID or unique property.\n\nUse this tool to perform a partial update of a commerce payment object identified by its internal ID or a unique property specified by `idProperty`. Ensure provided property values exist and are not read-only; this will overwrite them. To clear a value, pass an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_id", + "required": true, + "description": "The internal ID of the commerce payment to update. This ID identifies the specific payment object within the system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "commercePaymentId" + }, + { + "name": "commerce_payment_update_properties", + "required": true, + "description": "A JSON object containing key-value pairs for properties to update in the commerce payment. Include only existing and writable properties. Use empty strings to clear values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property for identifying the object. Use this if not using the default internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/commerce_payments/{commercePaymentId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/{commercePaymentId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "commercePaymentId", + "tool_parameter_name": "commerce_payment_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "commerce_payment_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePaymentsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePaymentsBatch.json new file mode 100644 index 00000000..051a891d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommercePaymentsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCommercePaymentsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateCommercePaymentsBatch@0.1.0", + "description": "Update a batch of commerce payments by internal ID or unique values.\n\nUse this tool to update multiple commerce payments in HubSpot CRM by providing their internal IDs or unique property values, allowing for efficient bulk modifications.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payments_update_batch", + "required": true, + "description": "JSON array containing objects with 'id', 'idProperty', and 'properties' to specify updates for each payment. Include 'objectWriteTraceId' for tracing.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "commerce_payments_update_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommunicationDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommunicationDetails.json new file mode 100644 index 00000000..2466ca61 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCommunicationDetails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCommunicationDetails", + "fully_qualified_name": "HubspotCrmApi.UpdateCommunicationDetails@0.1.0", + "description": "Update communication object details in HubSpot CRM.\n\nPerform a partial update of a HubSpot CRM communication object using its `communicationId` or a unique property value. This tool overwrites provided property values, with errors for read-only or non-existent properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "communication_id", + "required": true, + "description": "The internal object ID of the communication. Used to identify which communication object to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "communicationId" + }, + { + "name": "update_properties", + "required": true, + "description": "JSON key-value pairs representing the properties of the communication object to be updated. Read-only and non-existent properties will result in an error. Pass an empty string to clear a property value.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The unique property name used to identify the communication object if not using `communicationId`. It must refer to a property with unique values for the object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/communications/{communicationId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/{communicationId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "communicationId", + "tool_parameter_name": "communication_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateContactInformation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateContactInformation.json new file mode 100644 index 00000000..9812ecf3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateContactInformation.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateContactInformation", + "fully_qualified_name": "HubspotCrmApi.UpdateContactInformation@0.1.0", + "description": "Update specific fields of a contact in HubSpot CRM.\n\nUse this tool to perform a partial update of a contact's information in HubSpot CRM. Identify the contact by `{contactId}` and specify fields to update. Properties not intended for update are ignored. Pass an empty string to clear values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_id", + "required": true, + "description": "The unique ID or property value used to identify the contact for the update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactId" + }, + { + "name": "contact_properties_update", + "required": true, + "description": "JSON object containing key-value pairs of contact properties to update. Use empty strings to clear values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the property name with unique values for identifying the contact, such as email or phone number.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/contacts/{contactId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/{contactId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object type", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object type" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "contactId", + "tool_parameter_name": "contact_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "contact_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"example\": {\n \"property_date\": \"1572480000000\",\n \"property_radio\": \"option_1\",\n \"property_number\": \"17\",\n \"property_string\": \"value\",\n \"property_checkbox\": \"false\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\"\n }\n }\n },\n \"example\": {\n \"properties\": {\n \"email\": \"bcooper@biglytics.net\",\n \"phone\": \"(877) 929-0687\",\n \"company\": \"Biglytics\",\n \"website\": \"biglytics.net\",\n \"lastname\": \"Cooper\",\n \"firstname\": \"Bryan\"\n },\n \"associations\": []\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCoursesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCoursesBatch.json new file mode 100644 index 00000000..b2603135 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCoursesBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateCoursesBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateCoursesBatch@0.1.0", + "description": "Update multiple courses in a batch by ID or unique properties.\n\nUse this tool to update a batch of courses in the CRM system by specifying their internal IDs or unique property values. This is useful for making bulk updates efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "courses_batch_update_payload", + "required": true, + "description": "JSON object specifying the batch of courses to update, including IDs and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-410/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "courses_batch_update_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCrmObjectSchema.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCrmObjectSchema.json new file mode 100644 index 00000000..c05b07fd --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateCrmObjectSchema.json @@ -0,0 +1,406 @@ +{ + "name": "UpdateCrmObjectSchema", + "fully_qualified_name": "HubspotCrmApi.UpdateCrmObjectSchema@0.1.0", + "description": "Update a CRM object's schema in HubSpot.\n\nThis tool updates the schema of a specified CRM object type in HubSpot. Call this tool when you need to modify the structure or attributes of an existing CRM object schema.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type_identifier", + "required": true, + "description": "Fully qualified name or object type ID of your CRM schema for updates.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "secondary_display_properties", + "required": false, + "description": "Names of secondary properties displayed on the HubSpot record page for this object type.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type." + }, + "inferrable": true, + "http_endpoint_parameter_name": "secondaryDisplayProperties" + }, + { + "name": "required_properties", + "required": false, + "description": "List of property names that must be provided when creating an object of this type in HubSpot.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of properties that should be **required** when creating an object of this type." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requiredProperties" + }, + { + "name": "searchable_properties", + "required": false, + "description": "List of property names to be indexed for HubSpot's product search, enhancing searchability of the CRM object type.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search." + }, + "inferrable": true, + "http_endpoint_parameter_name": "searchableProperties" + }, + { + "name": "primary_display_property", + "required": false, + "description": "The primary property's name for this object, displayed prominently on the HubSpot record page.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "inferrable": true, + "http_endpoint_parameter_name": "primaryDisplayProperty" + }, + { + "name": "object_description", + "required": false, + "description": "A description for the CRM object schema, providing details about its purpose or usage in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + }, + { + "name": "plural_labels", + "required": false, + "description": "Specify the word representing multiple instances of the object type. This value is permanent and cannot be changed after setting.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "labels.plural" + }, + { + "name": "object_singular_name", + "required": false, + "description": "The word representing a single object. This cannot be changed later.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for one object. (There\u2019s no way to change this later.)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "labels.singular" + }, + { + "name": "clear_description", + "required": false, + "description": "Set to true to clear the description field for the object type schema.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "clearDescription" + }, + { + "name": "restorable", + "required": false, + "description": "Indicates if the object can be restored after deletion. Accepts a boolean value.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "restorable" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm-object-schemas/v3/schemas/{objectType}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.custom.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm-object-schemas/v3/schemas/{objectType}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type_identifier", + "description": "Fully qualified name or object type ID of your schema.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Fully qualified name or object type ID of your schema." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "secondaryDisplayProperties", + "tool_parameter_name": "secondary_display_properties", + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requiredProperties", + "tool_parameter_name": "required_properties", + "description": "The names of properties that should be **required** when creating an object of this type.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The names of properties that should be **required** when creating an object of this type." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "searchableProperties", + "tool_parameter_name": "searchable_properties", + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names of properties that will be indexed for this object type in by HubSpot's product search." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "clearDescription", + "tool_parameter_name": "clear_description", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "primaryDisplayProperty", + "tool_parameter_name": "primary_display_property", + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "object_description", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "restorable", + "tool_parameter_name": "restorable", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "labels.plural", + "tool_parameter_name": "plural_labels", + "description": "The word for multiple objects. (There\u2019s no way to change this later.)", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for multiple objects. (There\u2019s no way to change this later.)" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "labels.singular", + "tool_parameter_name": "object_singular_name", + "description": "The word for one object. (There\u2019s no way to change this later.)", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The word for one object. (There\u2019s no way to change this later.)" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"Attributes to update in your schema.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"secondaryDisplayProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"requiredProperties\": {\n \"type\": \"array\",\n \"description\": \"The names of properties that should be **required** when creating an object of this type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"searchableProperties\": {\n \"type\": \"array\",\n \"description\": \"Names of properties that will be indexed for this object type in by HubSpot's product search.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"clearDescription\": {\n \"type\": \"boolean\"\n },\n \"primaryDisplayProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"restorable\": {\n \"type\": \"boolean\"\n },\n \"labels\": {\n \"type\": \"object\",\n \"properties\": {\n \"plural\": {\n \"type\": \"string\",\n \"description\": \"The word for multiple objects. (There\\u2019s no way to change this later.)\"\n },\n \"singular\": {\n \"type\": \"string\",\n \"description\": \"The word for one object. (There\\u2019s no way to change this later.)\"\n }\n },\n \"description\": \"Singular and plural labels for the object. Used in CRM display.\",\n \"example\": {\n \"singular\": \"My object\",\n \"plural\": \"My objects\"\n }\n }\n },\n \"description\": \"Defines attributes to update on an object type.\",\n \"example\": {\n \"primaryDisplayProperty\": \"my_object_property\",\n \"requiredProperties\": [\n \"my_object_property\"\n ],\n \"searchableProperties\": [\n \"my_object_property\"\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountDetails.json new file mode 100644 index 00000000..0e7ce98d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountDetails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateDiscountDetails", + "fully_qualified_name": "HubspotCrmApi.UpdateDiscountDetails@0.1.0", + "description": "Update specific properties of a discount in HubSpot CRM.\n\nUse this tool to perform a partial update on a discount object in HubSpot CRM. Specify the discount using its internal ID or by a unique property using `idProperty`. Only overwrite existing properties. Errors occur with read-only or non-existent properties. Clear properties by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_identifier", + "required": true, + "description": "The unique identifier for the discount object. This can be the internal ID or a unique property specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "discountId" + }, + { + "name": "discount_properties_update", + "required": true, + "description": "A JSON object containing key-value pairs representing the properties of the discount to update. Pass an empty string to clear a property.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property to identify the discount object. Use this instead of the internal discount ID if needed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/discounts/{discountId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/{discountId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "discountId", + "tool_parameter_name": "discount_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "discount_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountsBatch.json new file mode 100644 index 00000000..447edbf7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateDiscountsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateDiscountsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateDiscountsBatch@0.1.0", + "description": "Update multiple discounts by ID or unique properties.\n\nUse this tool to update a batch of discounts in HubSpot CRM by specifying internal IDs or unique property values. It is suitable for scenarios where multiple discount records need to be updated simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_update_requests", + "required": true, + "description": "An array of objects, each with properties like 'id', 'idProperty', 'objectWriteTraceId', and 'properties'. These specify the discounts to update in the batch.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "discount_update_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateEmailInHubspotCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateEmailInHubspotCrm.json new file mode 100644 index 00000000..c18d7a91 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateEmailInHubspotCrm.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateEmailInHubspotCrm", + "fully_qualified_name": "HubspotCrmApi.UpdateEmailInHubspotCrm@0.1.0", + "description": "Updates an email object in HubSpot CRM with new property values.\n\nThis tool updates properties of an email object in HubSpot CRM, identified by the internal ID or a unique property. Read-only or nonexistent properties will cause errors, and properties can be cleared by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_identifier", + "required": true, + "description": "The unique identifier for the email object, either the internal ID or a unique property value.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "email_properties_update", + "required": true, + "description": "JSON object containing key-value pairs to update email properties. Provide property names and their new values. Pass an empty string to clear a property's value.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Name of a unique property for identifying the email object, used instead of default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/emails/{emailId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/emails/{emailId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "emailId", + "tool_parameter_name": "email_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "email_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateFeeDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateFeeDetails.json new file mode 100644 index 00000000..71a8f9a7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateFeeDetails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateFeeDetails", + "fully_qualified_name": "HubspotCrmApi.UpdateFeeDetails@0.1.0", + "description": "Update specific details of a fee in the CRM.\n\nThis tool performs a partial update of a fee record identified by its internal ID or another unique property. Use it to overwrite existing property values or clear them by passing an empty string. Be aware that read-only or non-existent properties will cause an error.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_identifier", + "required": true, + "description": "The ID or unique property value that identifies the fee object to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "feeId" + }, + { + "name": "fee_properties_to_update", + "required": true, + "description": "JSON object containing key-value pairs to update fee properties. Read-only or non-existent properties will cause an error.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the unique property name to identify the object instead of the default ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/fees/{feeId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/{feeId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "feeId", + "tool_parameter_name": "fee_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "fee_properties_to_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateGoalTarget.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateGoalTarget.json new file mode 100644 index 00000000..14b1a50b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateGoalTarget.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateGoalTarget", + "fully_qualified_name": "HubspotCrmApi.UpdateGoalTarget@0.1.0", + "description": "Update properties of a HubSpot goal target.\n\nUse this tool to perform a partial update on a HubSpot goal target object using its ID or a unique property. This is useful for editing specific properties of a goal target. Ensure only modifiable properties are included, as read-only or non-existent properties will cause errors. Clear properties by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_target_id", + "required": true, + "description": "The internal ID of the goal target to update. Use this to specify which goal target object to modify.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "goalTargetId" + }, + { + "name": "goal_target_properties", + "required": true, + "description": "JSON object with key-value pairs representing the properties to update. Clear a property by using an empty string as its value.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property for the goal target object used for identification or update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/goal_targets/{goalTargetId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/{goalTargetId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "goalTargetId", + "tool_parameter_name": "goal_target_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "goal_target_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCompany.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCompany.json new file mode 100644 index 00000000..b7d4a54b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCompany.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotCompany", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotCompany@0.1.0", + "description": "Update a company's details in HubSpot CRM using its ID.\n\nUse this tool to update a company's information in HubSpot CRM by specifying the `companyId` or a unique property. Only existing and writable properties can be updated. Properties can be cleared by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "company_unique_identifier", + "required": true, + "description": "The unique identifier for the company to be updated, either the companyId or a unique property value.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "companyId" + }, + { + "name": "company_properties_update", + "required": true, + "description": "A JSON object specifying the company property values to set or clear. Only existing and writable properties can be updated. Pass an empty string to clear a property.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The company property values to set." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of the unique property used to identify the company.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/companies/{companyId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.companies.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/companies/{companyId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "companyId", + "tool_parameter_name": "company_unique_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "company_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The company property values to set." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The company property values to set.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCourse.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCourse.json new file mode 100644 index 00000000..fe61e828 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotCourse.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotCourse", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotCourse@0.1.0", + "description": "Update specific properties of a HubSpot course object.\n\nUse this tool to perform a partial update on a course object in HubSpot CRM. Update is identified by either the `{courseId}` or a unique property via `idProperty`. Only properties provided will be changed, while read-only or non-existent properties will cause an error. Properties can be cleared by providing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "course_identifier", + "required": true, + "description": "The unique identifier for the HubSpot course. It can be the internal course ID or a unique property value specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "courseId" + }, + { + "name": "course_update_properties", + "required": true, + "description": "A JSON object containing key-value pairs of course properties to update. Only include properties that need to be changed. Keys should be valid property names in HubSpot CRM, and values should be the new values to set. Clear a property by setting its value to an empty string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The property name with unique values for identifying the object to update. Use it if not using `courseId`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/0-410/{courseId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.courses.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-410/{courseId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "courseId", + "tool_parameter_name": "course_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "course_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotDeal.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotDeal.json new file mode 100644 index 00000000..1e3624c8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotDeal.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotDeal", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotDeal@0.1.0", + "description": "Update a specific deal in HubSpot CRM.\n\nUse this tool to perform a partial update on a deal in HubSpot CRM by specifying the deal's internal ID or a unique property value. Only existing properties can be updated, and read-only properties will not be accepted.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deal_identifier", + "required": true, + "description": "The unique identifier of the deal to be updated in HubSpot CRM. Can be internal ID or unique property value.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be updated." + }, + "inferrable": true, + "http_endpoint_parameter_name": "dealId" + }, + { + "name": "deal_properties_update", + "required": true, + "description": "JSON object containing key-value pairs of properties to update for the deal. Non-existent properties will cause an error.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property to identify the deal instead of `dealId`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/0-3/{dealId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/{dealId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "dealId", + "tool_parameter_name": "deal_identifier", + "description": "The unique identifier of the deal to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the deal to be updated." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "deal_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotMeeting.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotMeeting.json new file mode 100644 index 00000000..8f1896db --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotMeeting.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotMeeting", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotMeeting@0.1.0", + "description": "Update specific properties of a HubSpot meeting.\n\nUse this tool to perform a partial update on a HubSpot CRM meeting object. Identify the meeting using `{meetingId}` or a unique property with `idProperty`. Overwrite specified property values, but note that read-only or non-existent properties will cause an error. Properties can be cleared by sending an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_id", + "required": true, + "description": "The internal ID of the meeting or a property name with unique values for identification.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "meetingId" + }, + { + "name": "meeting_update_properties", + "required": true, + "description": "JSON object with key-value pairs for meeting properties to update. Keys are property names, values are new property values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of the unique property for identifying the meeting.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/meetings/{meetingId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/{meetingId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "meetingId", + "tool_parameter_name": "meeting_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "meeting_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotNote.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotNote.json new file mode 100644 index 00000000..7e26b232 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotNote.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotNote", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotNote@0.1.0", + "description": "Update a HubSpot note with new property values.\n\nUse this tool to update specific properties of a HubSpot CRM note. Identify the note by its ID or a unique property value and provide new values for properties you wish to change. Read-only and non-existent properties cannot be updated. Clear properties by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "note_identifier", + "required": true, + "description": "The ID or unique property value of the note to update. Use `noteId` for internal ID or specify a unique property via `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "noteId" + }, + { + "name": "note_update_properties", + "required": true, + "description": "JSON object with key-value pairs representing the properties and their new values for a HubSpot note. Pass an empty string to clear a property. Non-existent or read-only properties will cause an error.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property with unique values for this object, used to identify the note.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/notes/{noteId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/{noteId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "noteId", + "tool_parameter_name": "note_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "note_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObject.json new file mode 100644 index 00000000..e0028f6a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObject.json @@ -0,0 +1,291 @@ +{ + "name": "UpdateHubspotObject", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotObject@0.1.0", + "description": "Update specific properties of a HubSpot CRM object.\n\nThis tool performs a partial update of an object in HubSpot CRM, identified by the internal object ID or a unique property value. It overwrites provided property values, errors out on read-only or non-existent properties, and allows clearing values by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The type of CRM object to update (e.g., contacts, companies).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "object_identifier", + "required": true, + "description": "A string representing the internal object ID or unique property value used to identify the HubSpot CRM object for updating.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "properties_to_update", + "required": true, + "description": "A JSON object with key-value pairs representing the properties of the HubSpot CRM object to be updated. Key names should match the property's unique names in the CRM system.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property whose values are unique for the object, used to identify the object for the update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/objects/v3/{objectType}/{objectId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/{objectId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "objectId", + "tool_parameter_name": "object_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "properties_to_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObjectsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObjectsBatch.json new file mode 100644 index 00000000..0797953d --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotObjectsBatch.json @@ -0,0 +1,291 @@ +{ + "name": "UpdateHubspotObjectsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotObjectsBatch@0.1.0", + "description": "Update multiple HubSpot CRM objects in a batch.\n\nUse this tool to update a batch of objects in HubSpot CRM using internal IDs or unique property values. Useful for synchronizing or modifying multiple CRM records at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The type of HubSpot CRM object to update, such as 'contacts', 'companies', 'deals', or 'tickets'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "batch_update_data", + "required": true, + "description": "JSON object containing an array of objects with details such as idProperty, objectWriteTraceId, id, and properties for batch updating.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotOrdersBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotOrdersBatch.json new file mode 100644 index 00000000..0bb6d85c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotOrdersBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotOrdersBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotOrdersBatch@0.1.0", + "description": "Update multiple HubSpot CRM orders in a batch.\n\nUse this tool to update a batch of orders in HubSpot CRM by their internal ID or unique property values. Useful for modifying multiple order records at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_batch_update_data", + "required": true, + "description": "JSON object containing an array of order update details, including unique IDs and property key-value pairs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "order_batch_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotProductsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotProductsBatch.json new file mode 100644 index 00000000..d5aa7e65 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotProductsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotProductsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotProductsBatch@0.1.0", + "description": "Update a batch of HubSpot products by ID or unique properties.\n\nUse this tool to update multiple products in HubSpot CRM with new details by internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_updates_payload", + "required": true, + "description": "JSON payload containing an array of product updates. Each update includes 'id' or 'idProperty', 'objectWriteTraceId', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "product_updates_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotTask.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotTask.json new file mode 100644 index 00000000..4eb5dcde --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotTask.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotTask", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotTask@0.1.0", + "description": "Update properties of a HubSpot task using its ID.\n\nThis tool allows partial updates to a task in HubSpot CRM by specifying a `{taskId}` or a unique property defined by `idProperty`. It overwrites specified properties, with read-only and non-existent properties triggering errors. To clear a property, pass an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "task_identifier", + "required": true, + "description": "The internal ID or unique property name of the task to update. Defaults to internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "taskId" + }, + { + "name": "task_properties_to_update", + "required": true, + "description": "JSON object with key-value pairs for the properties to update in the task. Overwrites existing values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of the property with unique values. Used for identifying the object instead of `taskId`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/tasks/{taskId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/{taskId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "taskId", + "tool_parameter_name": "task_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "task_properties_to_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotUser.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotUser.json new file mode 100644 index 00000000..f2453ca2 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateHubspotUser.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateHubspotUser", + "fully_qualified_name": "HubspotCrmApi.UpdateHubspotUser@0.1.0", + "description": "Update user details in HubSpot CRM.\n\nThis tool updates specific user information in HubSpot CRM for a given user ID or a unique property value if specified. Use this tool when you need to modify or clear user property values, bearing in mind read-only and non-existent properties will cause errors.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_id", + "required": true, + "description": "The internal user ID or unique property value to identify the user for updating.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "userId" + }, + { + "name": "user_properties_to_update", + "required": true, + "description": "A JSON object containing key-value pairs of user properties to update. Specify properties to modify or clear.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specifies the name of a property with unique values for identifying the user object. Use this if not using userId.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/users/{userId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/{userId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "userId", + "tool_parameter_name": "user_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "user_properties_to_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoiceDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoiceDetails.json new file mode 100644 index 00000000..e5e94d14 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoiceDetails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateInvoiceDetails", + "fully_qualified_name": "HubspotCrmApi.UpdateInvoiceDetails@0.1.0", + "description": "Update invoice details in HubSpot CRM.\n\nUse this tool to perform a partial update of an invoice in HubSpot CRM. The invoice can be identified by its internal ID or a unique property. Only existing properties with provided values will be updated, and any read-only or non-existent properties will cause an error.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_identifier", + "required": true, + "description": "Unique identifier for the invoice, either the internal ID or specified unique property value, to update in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "invoiceId" + }, + { + "name": "invoice_update_properties", + "required": true, + "description": "JSON object with key-value pairs representing the invoice properties to update. Only existing properties can be updated.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Name of the unique property for identifying the invoice object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/invoices/{invoiceId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/{invoiceId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "invoiceId", + "tool_parameter_name": "invoice_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "invoice_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoicesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoicesBatch.json new file mode 100644 index 00000000..27b517d8 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateInvoicesBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateInvoicesBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateInvoicesBatch@0.1.0", + "description": "Updates multiple invoices in the HubSpot CRM.\n\nThis tool updates a batch of invoices in HubSpot CRM using either internal IDs or unique property values. It should be called when you need to modify multiple invoice records simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoices_update_data", + "required": true, + "description": "A JSON object containing a list of invoices to update. Each invoice includes 'idProperty', 'objectWriteTraceId', 'id', and 'properties'. 'idProperty' is a unique identifier property, 'objectWriteTraceId' is a request trace ID, 'id' is the invoice ID or unique property, and 'properties' contains the invoice fields to update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "invoices_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadDetails.json new file mode 100644 index 00000000..1e1f27da --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadDetails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateLeadDetails", + "fully_qualified_name": "HubspotCrmApi.UpdateLeadDetails@0.1.0", + "description": "Update details of a specific lead in HubSpot CRM.\n\nUse this tool to perform a partial update to the details of a specific lead in the HubSpot CRM. You can specify the lead using their internal object ID or a unique property value. Only provided properties will be updated. This tool should be called when you need to update certain fields of a lead without altering others. Ensure that read-only and non-existent properties are not included, as these will result in an error.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "lead_identifier", + "required": true, + "description": "The internal object ID or unique property value used to identify the lead in HubSpot CRM. Required for updating the lead details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "leadsId" + }, + { + "name": "lead_update_properties", + "required": true, + "description": "A JSON object with key-value pairs for the lead properties to update. Only specify properties that need to change. Read-only and non-existent properties will cause errors.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a unique property to identify the lead, instead of using the internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/leads/{leadsId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/{leadsId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "leadsId", + "tool_parameter_name": "lead_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "lead_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadsBatch.json new file mode 100644 index 00000000..e7dcce04 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLeadsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateLeadsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateLeadsBatch@0.1.0", + "description": "Update multiple leads in a batch by ID or unique properties.\n\nUse this tool to update a set of leads in HubSpot CRM using their internal IDs or unique property values. This is useful for making bulk changes efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "leads_update_data", + "required": true, + "description": "A JSON object containing an array of leads with IDs or unique property values and their updated properties. Each lead entry includes 'idProperty' for a unique property name, 'objectWriteTraceId' for tracing, 'id' which can be an object ID or unique property value, and 'properties' as key-value pairs to update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/leads/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.leads.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/leads/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "leads_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItem.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItem.json new file mode 100644 index 00000000..e916c0c5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItem.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateLineItem", + "fully_qualified_name": "HubspotCrmApi.UpdateLineItem@0.1.0", + "description": "Update properties of a CRM line item using its ID.\n\nUse this tool to perform a partial update of a CRM line item identified by its internal ID or a unique property value. Only provided properties will be updated, and passing an empty string can clear property values. Make sure not to include read-only or non-existent properties as they will result in errors.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_item_id", + "required": true, + "description": "The internal ID of the line item to update. This ID identifies the object to be modified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "lineItemId" + }, + { + "name": "line_item_properties", + "required": true, + "description": "JSON object with key-value pairs representing the properties to update for the line item. Pass an empty string to clear a property value. Avoid read-only or non-existent properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify a property with unique values to identify the line item instead of using the internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/line_items/{lineItemId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/{lineItemId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "lineItemId", + "tool_parameter_name": "line_item_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "line_item_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItemsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItemsBatch.json new file mode 100644 index 00000000..0e4ed090 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateLineItemsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateLineItemsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateLineItemsBatch@0.1.0", + "description": "Update multiple line items in CRM using internal IDs or unique properties.\n\nThis tool updates a batch of line items in HubSpot CRM. It's useful when needing to modify multiple line items at once using their internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_items_update_data", + "required": true, + "description": "JSON array containing objects with 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update line items.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "line_items_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListMemberships.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListMemberships.json new file mode 100644 index 00000000..317b1100 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListMemberships.json @@ -0,0 +1,177 @@ +{ + "name": "UpdateListMemberships", + "fully_qualified_name": "HubspotCrmApi.UpdateListMemberships@0.1.0", + "description": "Add or remove records from a manual or snapshot list.\n\nThis tool is used to add and/or remove records from a manual or snapshot list in the HubSpot CRM. It facilitates managing list memberships by updating existing records according to specified changes.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_identifier", + "required": true, + "description": "The unique ILS ID of the MANUAL or SNAPSHOT list to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "record_ids_to_remove", + "required": true, + "description": "An array of record IDs to remove from the list. Each ID should be a string.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "recordIdsToRemove" + }, + { + "name": "record_ids_to_add", + "required": true, + "description": "An array of record IDs to be added to the specified list. Ensure these records are already created in the system.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "recordIdsToAdd" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/memberships/add-and-remove_addAndRemove'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/memberships/add-and-remove", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listId", + "tool_parameter_name": "list_identifier", + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the `MANUAL` or `SNAPSHOT` list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "recordIdsToRemove", + "tool_parameter_name": "record_ids_to_remove", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "recordIdsToAdd", + "tool_parameter_name": "record_ids_to_add", + "description": "", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"The IDs of the records to add and/or remove from the list.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"recordIdsToAdd\",\n \"recordIdsToRemove\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"recordIdsToRemove\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"recordIdsToAdd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"The IDs of the records to add and/or remove from a list.\",\n \"example\": {\n \"recordIdsToAdd\": [\n \"123\",\n \"456\",\n \"789\"\n ],\n \"recordIdsToRemove\": [\n \"654\"\n ]\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListName.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListName.json new file mode 100644 index 00000000..779b2f6e --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateListName.json @@ -0,0 +1,177 @@ +{ + "name": "UpdateListName", + "fully_qualified_name": "HubspotCrmApi.UpdateListName@0.1.0", + "description": "Update the name of a CRM list in HubSpot.\n\nCall this tool to update the name of a CRM list in HubSpot, ensuring the new name is globally unique.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "list_id", + "required": true, + "description": "The unique ILS ID of the list to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to update." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + }, + { + "name": "new_list_name", + "required": false, + "description": "The new name for the CRM list. It must be globally unique relative to other public lists.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name to update the list to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listName" + }, + { + "name": "include_filter_branch_definition", + "required": false, + "description": "Set to true to include filter branch definitions in the response list definition, or false to exclude them.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFilters" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/crm/v3/lists/{listId}/update-list-name_updateName'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.lists.write", + "cms.membership.access_groups.write", + "crm.lists.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/lists/{listId}/update-list-name", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "listName", + "tool_parameter_name": "new_list_name", + "description": "The name to update the list to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name to update the list to." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "includeFilters", + "tool_parameter_name": "include_filter_branch_definition", + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A flag indicating whether or not the response object list definition should include a filter branch definition. By default, object list definitions will not have their filter branch definitions included in the response." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The **ILS ID** of the list to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The **ILS ID** of the list to update." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMeetingsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMeetingsBatch.json new file mode 100644 index 00000000..5cc16467 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMeetingsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateMeetingsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateMeetingsBatch@0.1.0", + "description": "Update a batch of meetings in HubSpot CRM.\n\nThis tool updates multiple meetings in HubSpot CRM using internal IDs or unique property values. It should be called when you need to modify details for several meetings at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_batch_update_payload", + "required": true, + "description": "JSON array of meeting records to update, including unique IDs and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "meeting_batch_update_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMessagesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMessagesBatch.json new file mode 100644 index 00000000..4435e778 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMessagesBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateMessagesBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateMessagesBatch@0.1.0", + "description": "Update a batch of messages in HubSpot CRM.\n\nUse this tool to update multiple messages at once in HubSpot CRM by specifying either the communication ID or a unique property value. Only provided property values will be updated, and non-existent properties or read-only fields will cause errors. Include empty strings to clear properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "messages_batch_update_payload", + "required": true, + "description": "A JSON object containing an array of messages to be updated. Each message specifies either a `communicationId` or `idProperty` with properties to update. Properties can be cleared with an empty string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "messages_batch_update_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleCrmListings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleCrmListings.json new file mode 100644 index 00000000..8c409453 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleCrmListings.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateMultipleCrmListings", + "fully_qualified_name": "HubspotCrmApi.UpdateMultipleCrmListings@0.1.0", + "description": "Update multiple CRM listings using internal IDs or unique properties.\n\nThis tool updates multiple listings in the CRM using their internal IDs or unique property values. It should be called when there is a need to modify several records in bulk within the CRM system.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_batch_update_payload", + "required": true, + "description": "JSON payload containing an array of objects with unique identifiers and properties for batch updates. Each object should include 'id' or 'idProperty', 'objectWriteTraceId', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-420/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-420/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "crm_batch_update_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleDeals.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleDeals.json new file mode 100644 index 00000000..02c26ba5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleDeals.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateMultipleDeals", + "fully_qualified_name": "HubspotCrmApi.UpdateMultipleDeals@0.1.0", + "description": "Update multiple deals in the CRM system.\n\nThis tool updates multiple deals using their internal IDs or unique property values in the CRM. It should be called when you need to modify several deals at once within the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "deals_data", + "required": true, + "description": "A JSON array of objects with deal details, including 'id', 'idProperty', 'objectWriteTraceId', and 'properties' to update multiple deals.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-3/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.deals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-3/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "deals_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleHubspotAppointments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleHubspotAppointments.json new file mode 100644 index 00000000..5d242944 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleHubspotAppointments.json @@ -0,0 +1,291 @@ +{ + "name": "UpdateMultipleHubspotAppointments", + "fully_qualified_name": "HubspotCrmApi.UpdateMultipleHubspotAppointments@0.1.0", + "description": "Update multiple appointments in HubSpot CRM.\n\nUse this tool to update multiple appointments by their internal IDs or unique property values within HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_object_type", + "required": true, + "description": "Specify the type of HubSpot CRM object to update, e.g., 'appointments'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "appointment_updates", + "required": true, + "description": "A JSON object containing an array of appointment updates, each with properties like 'id', 'idProperty', 'objectWriteTraceId', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "hubspot_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "appointment_updates", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultiplePostalMails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultiplePostalMails.json new file mode 100644 index 00000000..b0305ca5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultiplePostalMails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateMultiplePostalMails", + "fully_qualified_name": "HubspotCrmApi.UpdateMultiplePostalMails@0.1.0", + "description": "Update multiple postal mail records at once in HubSpot CRM.\n\nUse this tool to update several postal mail objects within HubSpot CRM in a single request, streamlining batch modifications.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_updates", + "required": true, + "description": "JSON array containing objects with ids and properties to update postal mail records. Each object should include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_updates", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleUsers.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleUsers.json new file mode 100644 index 00000000..48f72547 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateMultipleUsers.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateMultipleUsers", + "fully_qualified_name": "HubspotCrmApi.UpdateMultipleUsers@0.1.0", + "description": "Update multiple users in HubSpot CRM by internal ID or unique properties.\n\nThis tool updates a batch of users in HubSpot CRM using either their internal IDs or unique property values. Use this tool to efficiently update information for multiple users at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_update_data", + "required": true, + "description": "A JSON object containing an array of user update data, each with unique identifiers and property updates. Includes idProperty, objectWriteTraceId, id, and properties for each user.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "user_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrCreateHubspotRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrCreateHubspotRecords.json new file mode 100644 index 00000000..e4488069 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrCreateHubspotRecords.json @@ -0,0 +1,291 @@ +{ + "name": "UpdateOrCreateHubspotRecords", + "fully_qualified_name": "HubspotCrmApi.UpdateOrCreateHubspotRecords@0.1.0", + "description": "Create or update HubSpot CRM records in bulk.\n\nThis tool is used to batch upsert records in HubSpot CRM based on a unique identifier. It's ideal for managing large datasets where records may need to be created or updated if they already exist.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specifies the type of CRM object to act upon, such as 'contacts', 'companies', etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "hubspot_records_data", + "required": true, + "description": "A JSON array of records with unique identifiers and properties for upsert. Each entry includes 'idProperty' (unique property name), 'objectWriteTraceId' (trace ID), 'id' (object ID), and 'properties' (key-value pairs for object properties).", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/{objectType}/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/{objectType}/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "hubspot_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrderDetails.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrderDetails.json new file mode 100644 index 00000000..ce6f3ac0 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateOrderDetails.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateOrderDetails", + "fully_qualified_name": "HubspotCrmApi.UpdateOrderDetails@0.1.0", + "description": "Update specific details of an order using its ID.\n\nThis tool performs a partial update of an order in HubSpot CRM, identified by the order's internal ID or a unique property value. Use it to modify existing order properties; read-only or non-existent properties cannot be updated and will cause errors. Properties can be cleared by providing empty values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "order_id", + "required": true, + "description": "The internal ID of the order to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "orderId" + }, + { + "name": "order_update_properties", + "required": true, + "description": "JSON object with key-value pairs of order properties to update. Empty strings can clear property values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a unique property to identify the order object instead of using the order ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/orders/{orderId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/{orderId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "orderId", + "tool_parameter_name": "order_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "order_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClient.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClient.json new file mode 100644 index 00000000..d1de56ef --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClient.json @@ -0,0 +1,193 @@ +{ + "name": "UpdatePartnerClient", + "fully_qualified_name": "HubspotCrmApi.UpdatePartnerClient@0.1.0", + "description": "Update details of a partner client in HubSpot CRM.\n\nThis tool is used to modify the information of a specified partner client in HubSpot CRM. It should be called when there is a need to update or change details related to a partner client using their unique ID.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_client_id", + "required": true, + "description": "The unique identifier for the partner client to be updated in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerClientId" + }, + { + "name": "partner_client_update_details", + "required": true, + "description": "JSON object containing key-value pairs of properties to update for the partner client.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "identifier_property", + "required": false, + "description": "Specify the property name used to identify the partner client for update operations.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/partner_clients/{partnerClientId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/{partnerClientId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "identifier_property", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "partnerClientId", + "tool_parameter_name": "partner_client_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "partner_client_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClientsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClientsBatch.json new file mode 100644 index 00000000..6d1243ef --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerClientsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdatePartnerClientsBatch", + "fully_qualified_name": "HubspotCrmApi.UpdatePartnerClientsBatch@0.1.0", + "description": "Update multiple partner clients in a batch.\n\nUse this tool to update information for multiple partner clients simultaneously in HubSpot CRM. It should be called when you need to make bulk updates to partner client records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_clients_update_data", + "required": true, + "description": "JSON containing an array of objects, each with 'idProperty', 'objectWriteTraceId', 'id', and 'properties' to update specific client records in bulk.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/partner_clients/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-clients.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_clients/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "partner_clients_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerService.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerService.json new file mode 100644 index 00000000..5b01669f --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerService.json @@ -0,0 +1,193 @@ +{ + "name": "UpdatePartnerService", + "fully_qualified_name": "HubspotCrmApi.UpdatePartnerService@0.1.0", + "description": "Partially update a partner service object in HubSpot CRM.\n\nUse this tool to update specific properties of a partner service object identified by `partnerServiceId` in HubSpot CRM. You can also use a unique property value specified by `idProperty`. Only existing, non-read-only properties can be updated. To clear a property, pass an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_service_id", + "required": true, + "description": "The internal object ID of the partner service to update. Use this to specify the object you want to partially update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "partnerServiceId" + }, + { + "name": "update_properties", + "required": true, + "description": "JSON object with key-value pairs representing properties to update. Non-existent or read-only properties will cause errors. Use empty strings to clear properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "Specify the name of a unique property for the partner service object to identify it. This is used instead of the default internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/partner_services/{partnerServiceId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/{partnerServiceId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "partnerServiceId", + "tool_parameter_name": "partner_service_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerServicesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerServicesBatch.json new file mode 100644 index 00000000..1a8819a3 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePartnerServicesBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdatePartnerServicesBatch", + "fully_qualified_name": "HubspotCrmApi.UpdatePartnerServicesBatch@0.1.0", + "description": "Update multiple partner services in CRM by ID or unique properties.\n\nUse this tool to update a batch of partner services in the HubSpot CRM using internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "partner_service_updates", + "required": true, + "description": "A JSON array containing objects with details like `id`, `idProperty`, `properties`, and `objectWriteTraceId` to update partner services.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/partner_services/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.partner-services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/partner_services/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "partner_service_updates", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineInCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineInCrm.json new file mode 100644 index 00000000..55f4ed13 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineInCrm.json @@ -0,0 +1,327 @@ +{ + "name": "UpdatePipelineInCrm", + "fully_qualified_name": "HubspotCrmApi.UpdatePipelineInCrm@0.1.0", + "description": "Partially update a pipeline in the CRM.\n\nUse this tool to perform a partial update of a pipeline identified by its pipeline ID within a specified object type in the CRM. The tool will return the updated pipeline details.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object (e.g., deals, tickets) to update the pipeline for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_identifier", + "required": true, + "description": "The unique identifier for the pipeline to be updated. This is required to specify which pipeline to modify.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "pipeline_display_order", + "required": false, + "description": "The display order number to determine the position of the pipeline in the CRM. Pipelines with the same display order are sorted alphabetically by label.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "inferrable": true, + "http_endpoint_parameter_name": "displayOrder" + }, + { + "name": "pipeline_label", + "required": false, + "description": "A unique label to organize and identify the pipeline within HubSpot's UI.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "inferrable": true, + "http_endpoint_parameter_name": "label" + }, + { + "name": "validate_references_before_deletion", + "required": false, + "description": "Set to true to validate references before deletion.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "validateReferencesBeforeDelete" + }, + { + "name": "validate_deal_stage_usages_before_delete", + "required": false, + "description": "Indicate if deal stage usages should be validated before deletion. A boolean value is expected.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "validateDealStageUsagesBeforeDelete" + }, + { + "name": "is_pipeline_archived", + "required": false, + "description": "Set to true if the pipeline is currently archived and you intend to restore it. Use only for restoration calls.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/pipelines/{objectType}/{pipelineId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "validateReferencesBeforeDelete", + "tool_parameter_name": "validate_references_before_deletion", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "validateDealStageUsagesBeforeDelete", + "tool_parameter_name": "validate_deal_stage_usages_before_delete", + "description": "", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "is_pipeline_archived", + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "displayOrder", + "tool_parameter_name": "pipeline_display_order", + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "label", + "tool_parameter_name": "pipeline_label", + "description": "A unique label used to organize pipelines in HubSpot's UI", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique label used to organize pipelines in HubSpot's UI" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the pipeline is archived. This property should only be provided when restoring an archived pipeline. If it's provided in any other call, the request will fail and a `400 Bad Request` will be returned.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline. If two pipelines have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A unique label used to organize pipelines in HubSpot's UI\"\n }\n },\n \"description\": \"An input used to update some properties on a pipeline definition.\",\n \"example\": {\n \"label\": \"My updated pipeline\",\n \"displayOrder\": 0\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineStage.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineStage.json new file mode 100644 index 00000000..7ab4324a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePipelineStage.json @@ -0,0 +1,294 @@ +{ + "name": "UpdatePipelineStage", + "fully_qualified_name": "HubspotCrmApi.UpdatePipelineStage@0.1.0", + "description": "Update a stage in a CRM pipeline.\n\nUse this tool to update the details of a specific stage within a CRM pipeline. It is useful when you need to modify the attributes of a pipeline stage, such as its name or order, to reflect changes in the sales or business process.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "pipeline_object_type", + "required": true, + "description": "The type of CRM object in the pipeline, such as 'deals' or 'tickets'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "pipeline_id", + "required": true, + "description": "A unique identifier for the pipeline to be updated. This is necessary to specify which pipeline contains the stage you want to modify.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "pipelineId" + }, + { + "name": "stage_id", + "required": true, + "description": "The unique identifier of the stage to be updated within the pipeline. This is required to specify which stage's details need modification.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "stageId" + }, + { + "name": "pipeline_stage_details", + "required": true, + "description": "A JSON object detailing the stage attributes to update. Includes fields like `archived`, `metadata`, `displayOrder`, and `label`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the pipeline is archived." + }, + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/pipelines/{objectType}/{pipelineId}/stages/{stageId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "pipeline_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "pipelineId", + "tool_parameter_name": "pipeline_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "stageId", + "tool_parameter_name": "stage_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "pipeline_stage_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the pipeline is archived." + }, + "metadata": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A JSON object containing properties that are not present on all object pipelines.\n\nFor `deals` pipelines, the `probability` field is required (`{ \"probability\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\n\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \"ticketState\": \"OPEN\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the pipeline is archived.\"\n },\n \"metadata\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"A JSON object containing properties that are not present on all object pipelines.\\n\\nFor `deals` pipelines, the `probability` field is required (`{ \\\"probability\\\": 0.5 }`), and represents the likelihood a deal will close. Possible values are between 0.0 and 1.0 in increments of 0.1.\\n\\nFor `tickets` pipelines, the `ticketState` field is optional (`{ \\\"ticketState\\\": \\\"OPEN\\\" }`), and represents whether the ticket remains open or has been closed by a member of your Support team. Possible values are `OPEN` or `CLOSED`.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order for displaying this pipeline stage. If two pipeline stages have a matching `displayOrder`, they will be sorted alphabetically by label.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A label used to organize pipeline stages in HubSpot's UI. Each pipeline stage's label must be unique within that pipeline.\"\n }\n },\n \"description\": \"An input used to update some properties on a pipeline definition.\",\n \"example\": {\n \"label\": \"Done\",\n \"displayOrder\": 1,\n \"metadata\": {\n \"ticketState\": \"CLOSED\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePostalMailRecord.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePostalMailRecord.json new file mode 100644 index 00000000..8c02cb29 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePostalMailRecord.json @@ -0,0 +1,193 @@ +{ + "name": "UpdatePostalMailRecord", + "fully_qualified_name": "HubspotCrmApi.UpdatePostalMailRecord@0.1.0", + "description": "Update a postal mail record in HubSpot CRM.\n\nUse this tool to update an existing postal mail record in HubSpot CRM by specifying the postalMailId of the record to be updated.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_id", + "required": true, + "description": "A unique identifier for the postal mail record to be updated in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "postalMailId" + }, + { + "name": "postal_mail_update_data", + "required": true, + "description": "JSON object containing key-value pairs of the postal mail properties to update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "property_identifier", + "required": false, + "description": "Specify the property key of the postal mail record to identify which field to update. This is typically the name of the field in the CRM record.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/postal_mail/{postalMailId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/{postalMailId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "property_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "postalMailId", + "tool_parameter_name": "postal_mail_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateProductInfo.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateProductInfo.json new file mode 100644 index 00000000..90100ace --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateProductInfo.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateProductInfo", + "fully_qualified_name": "HubspotCrmApi.UpdateProductInfo@0.1.0", + "description": "Partially update product information in HubSpot CRM.\n\nThis tool updates specific properties of a product identified by `productId` in HubSpot CRM. It will override existing property values, and returning errors for read-only or non-existent properties. Use when you need to modify product attributes such as name, price, or description.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_id", + "required": true, + "description": "The internal object ID of the product to be updated. This identifies the specific product in HubSpot CRM for the update operation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "productId" + }, + { + "name": "product_properties_update", + "required": true, + "description": "JSON object with key-value pairs of product properties to update. Only existing properties can be updated. Pass empty strings to clear values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The unique property name used to identify the product. It should be a string representing a property with unique values.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/products/{productId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/{productId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "productId", + "tool_parameter_name": "product_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "product_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyGroup.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyGroup.json new file mode 100644 index 00000000..3c7bb5b9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyGroup.json @@ -0,0 +1,228 @@ +{ + "name": "UpdatePropertyGroup", + "fully_qualified_name": "HubspotCrmApi.UpdatePropertyGroup@0.1.0", + "description": "Update fields in a specified property group.\n\nThis tool performs a partial update on a property group identified by {groupName} in HubSpot CRM. It overwrites the provided fields in the property group. Useful for modifying specific attributes within a property group without altering the entire group.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "Specifies the type of object in HubSpot CRM (e.g., contacts, companies).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_group_name", + "required": true, + "description": "The unique name of the property group to be updated in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupName" + }, + { + "name": "property_group_display_order", + "required": false, + "description": "Set the display order of the property group. Use positive integers for ordering, or -1 to display after positive values.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values." + }, + "inferrable": true, + "http_endpoint_parameter_name": "displayOrder" + }, + { + "name": "property_group_label", + "required": false, + "description": "A human-readable label for the property group in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label that will be shown in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "label" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/properties/{objectType}/groups/{groupName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/groups/{groupName}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "groupName", + "tool_parameter_name": "property_group_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "displayOrder", + "tool_parameter_name": "property_group_display_order", + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "label", + "tool_parameter_name": "property_group_label", + "description": "A human-readable label that will be shown in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label that will be shown in HubSpot." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Property groups are displayed in order starting with the lowest positive integer value. Values of -1 will cause the property group to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label that will be shown in HubSpot.\"\n }\n },\n \"example\": {\n \"displayOrder\": -1,\n \"label\": \"My Property Group\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyValue.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyValue.json new file mode 100644 index 00000000..14ec387b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdatePropertyValue.json @@ -0,0 +1,481 @@ +{ + "name": "UpdatePropertyValue", + "fully_qualified_name": "HubspotCrmApi.UpdatePropertyValue@0.1.0", + "description": "Update specific fields of a CRM property partially.\n\nUse this tool to partially update specific fields of a CRM property identified by its name. Only the specified fields will be overwritten.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "crm_object_type", + "required": true, + "description": "Specify the type of CRM object (e.g., 'contacts', 'deals') to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "property_identifier", + "required": true, + "description": "The unique name of the CRM property to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + }, + { + "name": "property_update_details", + "required": true, + "description": "A JSON object containing fields to update a CRM property, such as group name, visibility, options, display order, description, calculation formula, label, type, field type, and form field status.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the property won't be visible and can't be used in HubSpot." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/properties/{objectType}/{propertyName}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.schemas.carts.write", + "crm.schemas.invoices.write", + "tickets.sensitive.v2", + "crm.schemas.contacts.write", + "crm.schemas.services.write", + "e-commerce", + "crm.objects.orders.write", + "crm.schemas.deals.write", + "tickets.highly_sensitive.v2", + "tickets", + "crm.objects.carts.write", + "crm.schemas.courses.write", + "crm.schemas.custom.write", + "crm.schemas.commercepayments.write", + "crm.objects.users.write", + "crm.schemas.companies.write", + "crm.schemas.orders.write", + "crm.schemas.appointments.write", + "crm.pipelines.orders.write", + "crm.schemas.subscriptions.write", + "crm.schemas.listings.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/properties/{objectType}/{propertyName}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "crm_object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "property_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "property_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "groupName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property group the property belongs to." + }, + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the property won't be visible and can't be used in HubSpot." + }, + "options": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "hidden": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the option." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable option label that will be shown in HubSpot." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal value of the option, which must be used when setting the property value through the API." + } + }, + "description": "A list of valid options for the property." + }, + "displayOrder": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A description of the property that will be shown as help text in HubSpot." + }, + "calculationFormula": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Represents a formula that is used to compute a calculated property." + }, + "label": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable property label that will be shown in HubSpot." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "bool", + "date", + "datetime", + "enumeration", + "number", + "phone_number", + "string" + ], + "properties": null, + "inner_properties": null, + "description": "The data type of the property." + }, + "fieldType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea" + ], + "properties": null, + "inner_properties": null, + "description": "Controls how the property appears in HubSpot." + }, + "formField": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not the property can be used in a HubSpot form." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"groupName\": {\n \"type\": \"string\",\n \"description\": \"The name of the property group the property belongs to.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the property won't be visible and can't be used in HubSpot.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"A list of valid options for the property.\",\n \"items\": {\n \"required\": [\n \"hidden\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the option will not be shown in forms, bots, or meeting scheduling pages. Supported for contact, company, ticket, and custom object enumeration properties.\"\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Options are shown in order starting with the lowest positive integer value. Values of -1 will cause the option to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the option.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable option label that will be shown in HubSpot.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal value of the option, which must be used when setting the property value through the API.\"\n }\n },\n \"example\": {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n }\n }\n },\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"Properties are displayed in order starting with the lowest positive integer value. Values of -1 will cause the Property to be displayed after any positive values.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"A description of the property that will be shown as help text in HubSpot.\"\n },\n \"calculationFormula\": {\n \"type\": \"string\",\n \"description\": \"Represents a formula that is used to compute a calculated property.\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"A human-readable property label that will be shown in HubSpot.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The data type of the property.\",\n \"enum\": [\n \"bool\",\n \"date\",\n \"datetime\",\n \"enumeration\",\n \"number\",\n \"phone_number\",\n \"string\"\n ]\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Controls how the property appears in HubSpot.\",\n \"enum\": [\n \"booleancheckbox\",\n \"calculation_equation\",\n \"checkbox\",\n \"date\",\n \"file\",\n \"html\",\n \"number\",\n \"phonenumber\",\n \"radio\",\n \"select\",\n \"text\",\n \"textarea\"\n ]\n },\n \"formField\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not the property can be used in a HubSpot form.\"\n }\n },\n \"example\": {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteBatch.json new file mode 100644 index 00000000..cb84f165 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateQuoteBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateQuoteBatch@0.1.0", + "description": "Update a batch of quotes using internal ID or property values.\n\nUse this tool to update multiple quotes at once in the CRM. It should be called when you need to modify details of several quotes by their internal IDs or unique property values.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_update_requests", + "required": true, + "description": "A JSON array of quote update objects, each containing `id`, `properties`, `idProperty`, and an optional `objectWriteTraceId`. Each object specifies which quote to update and the new values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/quotes/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "quote_update_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteInformation.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteInformation.json new file mode 100644 index 00000000..8f41b240 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateQuoteInformation.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateQuoteInformation", + "fully_qualified_name": "HubspotCrmApi.UpdateQuoteInformation@0.1.0", + "description": "Update a quote's details in HubSpot CRM.\n\nUse this tool to perform a partial update of a quote in HubSpot CRM identified by `quoteId` or a unique property value. It allows overwriting specific property values, but read-only or invalid properties will cause an error. Properties can be cleared by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "quote_identifier", + "required": true, + "description": "The identifier of the quote to be updated. This can be the internal ID or a unique property value specified by `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "quoteId" + }, + { + "name": "quote_properties_update", + "required": true, + "description": "JSON object of key-value pairs to update specific properties of a quote. Clears properties by passing an empty string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property with unique values for identifying the quote object. Used instead of `quoteId`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/quotes/{quoteId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.quotes.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/quotes/{quoteId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "quoteId", + "tool_parameter_name": "quote_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "quote_properties_update", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateServicesBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateServicesBatch.json new file mode 100644 index 00000000..103ca892 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateServicesBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateServicesBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateServicesBatch@0.1.0", + "description": "Update multiple service records in HubSpot CRM.\n\nUse this tool to update a batch of service records in the HubSpot CRM by their internal IDs or unique property values. Suitable for synchronizing or modifying multiple records efficiently.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "service_update_requests", + "required": true, + "description": "JSON array of objects with service record IDs and properties to update. Each object must include `id`, `idProperty`, `objectWriteTraceId`, and `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/0-162/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.services.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/0-162/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "service_update_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscription.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscription.json new file mode 100644 index 00000000..f311900b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscription.json @@ -0,0 +1,258 @@ +{ + "name": "UpdateSubscription", + "fully_qualified_name": "HubspotCrmApi.UpdateSubscription@0.1.0", + "description": "Update subscription details using provided property values.\n\nUse this tool to perform a partial update of a subscription object in HubSpot CRM. Identify the object by its internal ID or a unique property value using the `idProperty` query parameter. Overwrite properties by providing new values; clear them by passing an empty string. Errors occur for read-only or non-existent properties.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_id", + "required": true, + "description": "The identifier for the subscription to update, typically the internal object ID. Specify this to target the right subscription.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriptionId" + }, + { + "name": "subscription_properties", + "required": true, + "description": "JSON object with key-value pairs representing properties to update for the subscription. Clear properties with an empty string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a unique property to identify the subscription object for updating.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/subscriptions/{subscriptionId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/{subscriptionId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriptionId", + "tool_parameter_name": "subscription_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "subscription_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscriptionBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscriptionBatch.json new file mode 100644 index 00000000..50ada7ee --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateSubscriptionBatch.json @@ -0,0 +1,258 @@ +{ + "name": "UpdateSubscriptionBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateSubscriptionBatch@0.1.0", + "description": "Update multiple subscriptions by ID or property values.\n\nThis tool updates a batch of subscriptions using their internal IDs or unique property values in HubSpot CRM. Use it when you need to modify details for multiple subscriptions simultaneously.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_update_details", + "required": true, + "description": "A JSON array of subscription details to update. Each item must include 'id', 'idProperty', 'objectWriteTraceId', and 'properties'. Use 'id' for the object or unique property ID.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "subscription_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTaxObject.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTaxObject.json new file mode 100644 index 00000000..893a28a4 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTaxObject.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateTaxObject", + "fully_qualified_name": "HubspotCrmApi.UpdateTaxObject@0.1.0", + "description": "Update properties of a tax object in HubSpot CRM.\n\nThis tool updates specified properties of a tax object in HubSpot CRM using its ID or a unique property value. It's used to perform partial updates where only certain fields need modification. Fields to be updated are specified in the request, and read-only or non-existent fields will cause errors. To clear a property, pass an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tax_object_identifier", + "required": true, + "description": "The identifier for the tax object. Use the internal `taxId` by default or provide a unique property value specified by the `idProperty`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "taxId" + }, + { + "name": "tax_object_properties", + "required": true, + "description": "JSON object containing key-value pairs of properties to update. Read-only or non-existent fields will cause errors. Empty strings can clear values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property uniquely identifying this tax object. Used instead of `taxId` if specified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/taxes/{taxId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/taxes/{taxId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "taxId", + "tool_parameter_name": "tax_object_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "tax_object_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketBatch.json new file mode 100644 index 00000000..1d758b83 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateTicketBatch", + "fully_qualified_name": "HubspotCrmApi.UpdateTicketBatch@0.1.0", + "description": "Update multiple tickets in HubSpot CRM by ID or property.\n\nThis tool updates a batch of tickets in the HubSpot CRM using their IDs or a unique property value. Use it when you need to modify several tickets at once. Properties that are read-only or non-existent will cause an error, and providing an empty string will clear a property value.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_update_data", + "required": true, + "description": "A JSON array of ticket objects to update, each with 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/update_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_update_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique identifier for tracing the request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id to be updated. This can be the object id, or the unique property value of the idProperty property" + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key-value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\",\n \"example\": \"my_unique_property_name\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"A unique identifier for tracing the request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The id to be updated. This can be the object id, or the unique property value of the idProperty property\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key-value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Contains an array of CRM object records to be processed in a batch operation, each defined by their ID and properties.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketInfo.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketInfo.json new file mode 100644 index 00000000..0948d135 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpdateTicketInfo.json @@ -0,0 +1,193 @@ +{ + "name": "UpdateTicketInfo", + "fully_qualified_name": "HubspotCrmApi.UpdateTicketInfo@0.1.0", + "description": "Partially update ticket details in HubSpot CRM.\n\nUse this tool to perform a partial update on a ticket identified by its `{ticketId}` or a unique property value specified by `idProperty` in HubSpot CRM. Read-only and non-existent properties will cause errors. Clear property values by passing an empty string.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_id", + "required": true, + "description": "The internal ID of the ticket to be updated. This is used to identify the specific ticket in HubSpot CRM.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "ticketId" + }, + { + "name": "ticket_update_properties", + "required": true, + "description": "A JSON object with key-value pairs representing the properties to update on the ticket. Each key is a property name, and its value is the new value for that property. Clear a property by setting its value to an empty string.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "unique_property_name", + "required": false, + "description": "The name of a property whose values are unique for the ticket object. Specify if not using the default ticket ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "inferrable": true, + "http_endpoint_parameter_name": "idProperty" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/crm/v3/objects/tickets/{ticketId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/{ticketId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "idProperty", + "tool_parameter_name": "unique_property_name", + "description": "The name of a property whose values are unique for this object", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "ticketId", + "tool_parameter_name": "ticket_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "ticket_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents the input required to create or update a CRM object, containing an object with property names and their corresponding values.\",\n \"example\": {\n \"properties\": {\n \"property_checkbox\": \"false\",\n \"property_date\": \"1572480000000\",\n \"property_dropdown\": \"choice_b\",\n \"property_multiple_checkboxes\": \"chocolate;strawberry\",\n \"property_number\": \"17\",\n \"property_radio\": \"option_1\",\n \"property_string\": \"value\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UploadCallTranscripts.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UploadCallTranscripts.json new file mode 100644 index 00000000..d2c4365b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UploadCallTranscripts.json @@ -0,0 +1,275 @@ +{ + "name": "UploadCallTranscripts", + "fully_qualified_name": "HubspotCrmApi.UploadCallTranscripts@0.1.0", + "description": "Upload call transcripts to HubSpot CRM.\n\nUse this tool to upload call transcripts to HubSpot CRM. It should be called when you need to store transcripts for CRM purposes.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "transcript_data", + "required": true, + "description": "A JSON object containing transcript details with utterances and engagement ID to upload to HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "transcriptCreateUtterances": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "endTimeMillis": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "startTimeMillis": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "speaker": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "languageCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "engagementId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/extensions/calling/transcripts'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.extensions_calling_transcripts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/extensions/calling/transcripts", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "transcript_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "transcriptCreateUtterances": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "endTimeMillis": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "startTimeMillis": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "speaker": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "text": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "languageCode": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "engagementId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"engagementId\",\n \"transcriptCreateUtterances\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"transcriptCreateUtterances\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"endTimeMillis\",\n \"speaker\",\n \"startTimeMillis\",\n \"text\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"endTimeMillis\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"startTimeMillis\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"speaker\": {\n \"required\": [\n \"id\",\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n }\n }\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"languageCode\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"engagementId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCallRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCallRecords.json new file mode 100644 index 00000000..30c3f83c --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCallRecords.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertCallRecords", + "fully_qualified_name": "HubspotCrmApi.UpsertCallRecords@0.1.0", + "description": "Create or update call records in HubSpot CRM.\n\nThis tool allows you to create or update call records in HubSpot CRM. It uses a unique property value specified by the `idProperty` query parameter to identify records that need to be updated or created. Use this tool when you need to batch upsert call records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "call_records_payload", + "required": true, + "description": "A JSON array of call records to be upserted, including unique identifiers and properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/calls/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/calls/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "call_records_payload", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCartRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCartRecords.json new file mode 100644 index 00000000..664190b7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCartRecords.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertCartRecords", + "fully_qualified_name": "HubspotCrmApi.UpsertCartRecords@0.1.0", + "description": "Create or update cart records in HubSpot CRM.\n\nUse this tool to create or update cart records based on a unique property value specified by the `idProperty`. Ideal for managing cart data in bulk within the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cart_records_data", + "required": true, + "description": "JSON object containing cart records to be created or updated, including unique `idProperty`, `objectWriteTraceId`, `id`, and key-value `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/carts/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/carts/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "cart_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommercePayments.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommercePayments.json new file mode 100644 index 00000000..d5d08fa5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommercePayments.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertCommercePayments", + "fully_qualified_name": "HubspotCrmApi.UpsertCommercePayments@0.1.0", + "description": "Create or update unique commerce payment records in HubSpot.\n\nUse this tool to create new commerce payment records or update existing ones in HubSpot CRM. The tool identifies records by a unique property value specified by the `idProperty` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "commerce_payment_records", + "required": true, + "description": "A JSON array of records, each with a unique idProperty, including tracing ID, object ID, and key-value properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/commerce_payments/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.commercepayments.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/commerce_payments/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "commerce_payment_records", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommunicationsRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommunicationsRecords.json new file mode 100644 index 00000000..a8e9ba90 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCommunicationsRecords.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertCommunicationsRecords", + "fully_qualified_name": "HubspotCrmApi.UpsertCommunicationsRecords@0.1.0", + "description": "Create or update communication records in bulk.\n\nThis tool allows you to batch create or update communication records in HubSpot CRM based on a unique property value. Utilize this tool when you need to synchronize communication data and ensure records are accurately up-to-date.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "communication_records_data", + "required": true, + "description": "A JSON array of objects, each containing 'idProperty', 'objectWriteTraceId', 'id', and 'properties' to define the records for upsertion.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/communications/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/communications/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "communication_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertContactBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertContactBatch.json new file mode 100644 index 00000000..e728eb01 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertContactBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertContactBatch", + "fully_qualified_name": "HubspotCrmApi.UpsertContactBatch@0.1.0", + "description": "Upsert a batch of contacts in HubSpot CRM.\n\nThis tool is used to upsert a batch of contacts in HubSpot CRM. It allows you to define property values for each contact record, making it ideal for updating or creating multiple contacts at once.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_batch_data", + "required": true, + "description": "JSON object containing an array of contact data for upsert. Each contact should have `idProperty`, `objectWriteTraceId`, `id`, and `properties` defined.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/contacts/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/contacts/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "contact_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCrmTickets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCrmTickets.json new file mode 100644 index 00000000..cad9400a --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertCrmTickets.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertCrmTickets", + "fully_qualified_name": "HubspotCrmApi.UpsertCrmTickets@0.1.0", + "description": "Create or update CRM tickets in bulk using unique identifiers.\n\nThis tool allows you to create or update ticket records in HubSpot CRM by using a unique identifier specified through the `idProperty` query parameter. This is useful for ensuring ticket data is up-to-date or for adding new ticket entries in bulk.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ticket_data_list", + "required": true, + "description": "A list of ticket data objects to be upserted, each containing a unique identifier and property details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tickets/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "tickets" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tickets/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "ticket_data_list", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertDiscountRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertDiscountRecords.json new file mode 100644 index 00000000..8ecb532b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertDiscountRecords.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertDiscountRecords", + "fully_qualified_name": "HubspotCrmApi.UpsertDiscountRecords@0.1.0", + "description": "Create or update discount records in HubSpot CRM.\n\nThis tool allows the creation or update of discount records in HubSpot CRM using unique property values specified by the `idProperty` query parameter. It is useful for ensuring that discount data is up-to-date and accurately maintained.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "discount_records_data", + "required": true, + "description": "A JSON object containing an array of discount records, each with a unique idProperty, objectWriteTraceId, id, and properties key-value pairs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/discounts/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/discounts/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "discount_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertGoalTargets.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertGoalTargets.json new file mode 100644 index 00000000..a8885895 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertGoalTargets.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertGoalTargets", + "fully_qualified_name": "HubspotCrmApi.UpsertGoalTargets@0.1.0", + "description": "Create or update goal target records in HubSpot CRM.\n\nThis tool allows creation or updating of goal target records in HubSpot CRM using a unique property for identification. Use it to ensure goal targets are up-to-date.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "goal_targets_data", + "required": true, + "description": "JSON array of goal target records to create or update, including unique id, idProperty, and other properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/goal_targets/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.goals.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/goal_targets/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "goal_targets_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotFees.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotFees.json new file mode 100644 index 00000000..1218c2c5 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotFees.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertHubspotFees", + "fully_qualified_name": "HubspotCrmApi.UpsertHubspotFees@0.1.0", + "description": "Create or update fee records in HubSpot CRM.\n\nThis tool should be called to create new fee records or update existing ones in HubSpot CRM. It uses a unique property value specified by the `idProperty` query parameter to identify records. Ideal for batch processing of fee information.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "fee_records_data", + "required": true, + "description": "A JSON array of fee records to create or update, including unique IDs, properties, and trace identifiers.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/fees/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/fees/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "fee_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotInvoices.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotInvoices.json new file mode 100644 index 00000000..56759da7 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotInvoices.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertHubspotInvoices", + "fully_qualified_name": "HubspotCrmApi.UpsertHubspotInvoices@0.1.0", + "description": "Create or update HubSpot invoice records in batch.\n\nThis tool creates or updates HubSpot invoice records using a unique property identifier specified by the `idProperty` parameter. It should be called when you need to ensure invoice records are accurately reflected in HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "invoice_data_batch", + "required": true, + "description": "A JSON array containing invoice records, where each record includes `idProperty`, `objectWriteTraceId`, `id`, and `properties` as key-value pairs. These are used to upsert (create or update) invoices in HubSpot CRM.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/invoices/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.invoices.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/invoices/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "invoice_data_batch", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotProductsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotProductsBatch.json new file mode 100644 index 00000000..c8251bb9 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotProductsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertHubspotProductsBatch", + "fully_qualified_name": "HubspotCrmApi.UpsertHubspotProductsBatch@0.1.0", + "description": "Batch create or update HubSpot product records.\n\nThis tool is used to create or update HubSpot product records in bulk, identified by a unique property value specified by the `idProperty`. It should be called when there's a need to synchronize or modify multiple product entries in the HubSpot CRM.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "product_batch_input_data", + "required": true, + "description": "JSON array of product records to upsert. Each record must include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/products/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/products/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "product_batch_input_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotRecords.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotRecords.json new file mode 100644 index 00000000..00a27b28 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotRecords.json @@ -0,0 +1,291 @@ +{ + "name": "UpsertHubspotRecords", + "fully_qualified_name": "HubspotCrmApi.UpsertHubspotRecords@0.1.0", + "description": "Create or update HubSpot CRM records in batch mode.\n\nUse this tool to create or update records in HubSpot CRM by specifying a unique property value. The `idProperty` parameter helps identify records uniquely for batch operations.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_type", + "required": true, + "description": "The type of object in HubSpot CRM (e.g., contacts, companies) to create or update. Specify the object type relevant to your operation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectType" + }, + { + "name": "batch_records_data", + "required": true, + "description": "JSON array of records to create or update. Each record must include 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/objects/v3/{objectType}/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/objects/v3/{objectType}/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectType", + "tool_parameter_name": "object_type", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "batch_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotTasks.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotTasks.json new file mode 100644 index 00000000..2a4ed636 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotTasks.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertHubspotTasks", + "fully_qualified_name": "HubspotCrmApi.UpsertHubspotTasks@0.1.0", + "description": "Create or update tasks in HubSpot using a unique property.\n\nThis tool creates or updates HubSpot CRM tasks identified by a unique property value specified by the `idProperty` query parameter. Use this tool when you need to batch upsert tasks based on unique identifiers.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "tasks_data", + "required": true, + "description": "An array of task objects to be upserted. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/tasks/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/tasks/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "tasks_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotUsers.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotUsers.json new file mode 100644 index 00000000..5abed482 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertHubspotUsers.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertHubspotUsers", + "fully_qualified_name": "HubspotCrmApi.UpsertHubspotUsers@0.1.0", + "description": "Create or update user records in HubSpot CRM.\n\nThis tool is used to create or update user records in HubSpot CRM by specifying a unique property value through the `idProperty` query parameter. It is helpful for maintaining and synchronizing user data in HubSpot.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_records_data", + "required": true, + "description": "A JSON array of user objects to be upserted. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties` to define unique user records and their attributes.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/users/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.users.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/users/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "user_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertLineItemsBatch.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertLineItemsBatch.json new file mode 100644 index 00000000..973079eb --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertLineItemsBatch.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertLineItemsBatch", + "fully_qualified_name": "HubspotCrmApi.UpsertLineItemsBatch@0.1.0", + "description": "Batch create or update line items by unique ID.\n\nThis tool creates or updates line item records in batches using a unique property to identify each item, as specified by the `idProperty` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "line_items_data", + "required": true, + "description": "A JSON array of objects containing details for each line item. Each object includes 'idProperty', 'objectWriteTraceId', 'id', and 'properties' with key-value pairs representing item properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/line_items/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.line_items.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/line_items/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "line_items_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertMeetings.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertMeetings.json new file mode 100644 index 00000000..9d2f2f09 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertMeetings.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertMeetings", + "fully_qualified_name": "HubspotCrmApi.UpsertMeetings@0.1.0", + "description": "Create or update meeting records in HubSpot CRM.\n\nUse this tool to create new meetings or update existing ones in HubSpot CRM by specifying a unique identifier for each record.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "meeting_records_data", + "required": true, + "description": "A JSON object containing an array of meeting records to be upserted. Each record must include 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/meetings/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/meetings/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "meeting_records_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertNotesHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertNotesHubspot.json new file mode 100644 index 00000000..7029d4f1 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertNotesHubspot.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertNotesHubspot", + "fully_qualified_name": "HubspotCrmApi.UpsertNotesHubspot@0.1.0", + "description": "Create or update notes in HubSpot CRM by unique property.\n\nThis tool is used to create or update multiple notes in HubSpot CRM in a single request. It identifies records using a unique property value specified by the `idProperty` query parameter.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "notes_data", + "required": true, + "description": "JSON array containing note objects with unique identifiers and properties for upsert. Each object must include 'idProperty', 'objectWriteTraceId', 'id', and 'properties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/notes/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/notes/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "notes_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertOrdersInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertOrdersInHubspot.json new file mode 100644 index 00000000..fb80e419 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertOrdersInHubspot.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertOrdersInHubspot", + "fully_qualified_name": "HubspotCrmApi.UpsertOrdersInHubspot@0.1.0", + "description": "Create or update orders in HubSpot CRM.\n\nThis tool calls the HubSpot CRM API to create or update multiple order records based on a unique property value. Use it when you need to batch insert or update orders by specifying a unique identifier for each order.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "orders_request_body", + "required": true, + "description": "JSON object containing an array of orders, each with unique identifiers and properties for upsert operation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/orders/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.orders.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/orders/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "orders_request_body", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertPostalMailInHubspot.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertPostalMailInHubspot.json new file mode 100644 index 00000000..12923721 --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertPostalMailInHubspot.json @@ -0,0 +1,193 @@ +{ + "name": "UpsertPostalMailInHubspot", + "fully_qualified_name": "HubspotCrmApi.UpsertPostalMailInHubspot@0.1.0", + "description": "Create or update postal mail records in HubSpot CRM.\n\nThis tool creates or updates postal mail records in HubSpot CRM based on a unique property value specified by the `idProperty` query parameter. Use it to ensure postal mail records are up-to-date and accurately maintained.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "postal_mail_records", + "required": true, + "description": "An array of postal mail records with unique identifiers and their properties. Each record should include `idProperty`, `objectWriteTraceId`, `id`, and `properties` to specify the unique aspects and data of the postal mail object.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/postal_mail/batch/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.contacts.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/postal_mail/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "postal_mail_records", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertSubscriptionsInHubspotCrm.json b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertSubscriptionsInHubspotCrm.json new file mode 100644 index 00000000..18a44f8b --- /dev/null +++ b/toolkits/hubspot_crm_api/arcade_hubspot_crm_api/wrapper_tools/UpsertSubscriptionsInHubspotCrm.json @@ -0,0 +1,258 @@ +{ + "name": "UpsertSubscriptionsInHubspotCrm", + "fully_qualified_name": "HubspotCrmApi.UpsertSubscriptionsInHubspotCrm@0.1.0", + "description": "Batch create or update subscription records in HubSpot CRM.\n\nUse this tool to create or update subscription records based on a unique property value in HubSpot CRM. It's ideal for ensuring your subscription data is up-to-date by specifying an `idProperty` for uniquely identifying existing records.", + "toolkit": { + "name": "ArcadeHubspotCrmApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "subscription_records", + "required": true, + "description": "A JSON array of objects representing subscription records to upsert. Each object must include `idProperty`, `objectWriteTraceId`, `id`, and `properties` with key-value pairs.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/crm/v3/objects/subscriptions/batch/upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.carts.read", + "crm.objects.services.write", + "tickets.sensitive.v2", + "crm.objects.contacts.write", + "crm.objects.courses.read", + "crm.objects.goals.write", + "crm.objects.custom.read", + "crm.objects.deals.read", + "crm.objects.custom.write", + "crm.objects.commercepayments.read", + "crm.objects.contacts.highly_sensitive.read.v2", + "crm.objects.leads.read", + "crm.objects.contacts.sensitive.write.v2", + "crm.objects.partner-services.write", + "e-commerce", + "crm.objects.products.read", + "crm.objects.custom.sensitive.write.v2", + "crm.objects.orders.write", + "crm.objects.subscriptions.write", + "tickets.highly_sensitive.v2", + "crm.objects.deals.highly_sensitive.read.v2", + "crm.objects.companies.write", + "crm.objects.partner-services.read", + "tickets", + "crm.objects.quotes.read", + "oauth", + "crm.objects.contacts.highly_sensitive.write.v2", + "crm.objects.companies.read", + "crm.objects.custom.highly_sensitive.read.v2", + "crm.objects.carts.write", + "crm.objects.quotes.write", + "crm.objects.companies.highly_sensitive.read.v2", + "crm.objects.users.write", + "crm.objects.companies.highly_sensitive.write.v2", + "crm.objects.users.read", + "crm.objects.contacts.read", + "crm.objects.appointments.write", + "crm.objects.partner-clients.write", + "crm.objects.line_items.write", + "crm.objects.deals.highly_sensitive.write.v2", + "crm.objects.deals.write", + "crm.objects.services.read", + "crm.objects.custom.sensitive.read.v2", + "crm.objects.companies.sensitive.write.v2", + "crm.objects.appointments.read", + "crm.objects.invoices.read", + "crm.objects.partner-clients.read", + "crm.objects.courses.write", + "crm.objects.custom.highly_sensitive.write.v2", + "crm.objects.listings.read", + "crm.objects.listings.write", + "crm.objects.subscriptions.read", + "crm.objects.appointments.sensitive.write.v2", + "crm.objects.invoices.write", + "crm.objects.line_items.read", + "crm.objects.companies.sensitive.read.v2", + "crm.objects.appointments.sensitive.read.v2", + "crm.objects.commercepayments.write", + "crm.objects.leads.write", + "crm.objects.deals.sensitive.read.v2", + "crm.objects.goals.read", + "crm.objects.orders.read", + "crm.objects.contacts.sensitive.read.v2", + "media_bridge.read", + "crm.objects.deals.sensitive.write.v2", + "crm.objects.products.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the hubspot_crm API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/crm/v3/objects/subscriptions/batch/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "subscription_records", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "idProperty": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of a property whose values are unique for this object" + }, + "objectWriteTraceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An identifier for tracing the creation request." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique ID of the object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Key value pairs representing the properties of the object." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"idProperty\": {\n \"type\": \"string\",\n \"description\": \"The name of a property whose values are unique for this object\"\n },\n \"objectWriteTraceId\": {\n \"type\": \"string\",\n \"description\": \"An identifier for tracing the creation request.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique ID of the object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Key value pairs representing the properties of the object.\"\n }\n },\n \"description\": \"Represents an object used in batch upsert operations, containing an object\\u2019s unique identifier, its properties, and optionally the unique property name and a write trace ID.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_crm_api/pyproject.toml b/toolkits/hubspot_crm_api/pyproject.toml new file mode 100644 index 00000000..b5984672 --- /dev/null +++ b/toolkits/hubspot_crm_api/pyproject.toml @@ -0,0 +1,61 @@ +[build-system] +requires = [ "hatchling",] +build-backend = "hatchling.build" + +[project] +name = "arcade_hubspot_crm_api" +version = "0.1.0" +description = "Tools that enable LLMs to interact directly with the Hubspot CRM API." +requires-python = ">=3.10" +dependencies = [ + "arcade-tdk>=3.0.0,<4.0.0", + "httpx[http2]>=0.27.2,<1.0.0", + "jsonschema>=4.0.0,<5.0.0", +] +[[project.authors]] +email = "support@arcade.dev" + + +[project.optional-dependencies] +dev = [ + "arcade-mcp[all]>=1.2.0,<2.0.0", + "arcade-serve>=3.0.0,<4.0.0", + "pytest>=8.3.0,<8.4.0", + "pytest-cov>=4.0.0,<4.1.0", + "pytest-mock>=3.11.1,<3.12.0", + "pytest-asyncio>=0.24.0,<0.25.0", + "mypy>=1.5.1,<1.6.0", + "pre-commit>=3.4.0,<3.5.0", + "tox>=4.11.1,<4.12.0", + "ruff>=0.7.4,<0.8.0", +] + +# Tell Arcade.dev that this package is a toolkit +[project.entry-points.arcade_toolkits] +toolkit_name = "arcade_hubspot_crm_api" + +# Use local path sources for arcade libs when working locally +[tool.uv.sources] +arcade-mcp = { path = "../../", editable = true } +arcade-serve = { path = "../../libs/arcade-serve/", editable = true } +arcade-tdk = { path = "../../libs/arcade-tdk/", editable = true } +[tool.mypy] +files = [ "arcade_hubspot_crm_api/**/*.py",] +python_version = "3.10" +disallow_untyped_defs = "True" +disallow_any_unimported = "True" +no_implicit_optional = "True" +check_untyped_defs = "True" +warn_return_any = "True" +warn_unused_ignores = "True" +show_error_codes = "True" +ignore_missing_imports = "True" + +[tool.pytest.ini_options] +testpaths = [ "tests",] + +[tool.coverage.report] +skip_empty = true + +[tool.hatch.build.targets.wheel] +packages = [ "arcade_hubspot_crm_api",] diff --git a/toolkits/hubspot_marketing_api/Makefile b/toolkits/hubspot_marketing_api/Makefile new file mode 100644 index 00000000..86da492a --- /dev/null +++ b/toolkits/hubspot_marketing_api/Makefile @@ -0,0 +1,54 @@ +.PHONY: help + +help: + @echo "🛠️ github Commands:\n" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: install +install: ## Install the uv environment and install all packages with dependencies + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras --no-sources + @if [ -f .pre-commit-config.yaml ]; then uv run --no-sources pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" + +.PHONY: install-local +install-local: ## Install the uv environment and install all packages with dependencies with local Arcade sources + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras + @if [ -f .pre-commit-config.yaml ]; then uv run pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" +.PHONY: build +build: clean-build ## Build wheel file using poetry + @echo "🚀 Creating wheel file" + uv build + +.PHONY: clean-build +clean-build: ## clean build artifacts + @echo "🗑️ Cleaning dist directory" + rm -rf dist + +.PHONY: test +test: ## Test the code with pytest + @echo "🚀 Testing code: Running pytest" + @uv run --no-sources pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml + +.PHONY: coverage +coverage: ## Generate coverage report + @echo "coverage report" + @uv run --no-sources coverage report + @echo "Generating coverage report" + @uv run --no-sources coverage html + +.PHONY: bump-version +bump-version: ## Bump the version in the pyproject.toml file by a patch version + @echo "🚀 Bumping version in pyproject.toml" + uv version --no-sources --bump patch + +.PHONY: check +check: ## Run code quality tools. + @if [ -f .pre-commit-config.yaml ]; then\ + echo "🚀 Linting code: Running pre-commit";\ + uv run --no-sources pre-commit run -a;\ + fi + @echo "🚀 Static type checking: Running mypy" + @uv run --no-sources mypy --config-file=pyproject.toml diff --git a/toolkits/hubspot_marketing_api/README.md b/toolkits/hubspot_marketing_api/README.md new file mode 100644 index 00000000..8a79d9be --- /dev/null +++ b/toolkits/hubspot_marketing_api/README.md @@ -0,0 +1,26 @@ +
+ +
+ +
+ Python version + License + PyPI version +
+ + +
+
+ +# Arcade hubspot_marketing_api Toolkit +Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API +## Features + +- The hubspot_marketing_api toolkit does not have any features yet. + +## Development + +Read the docs on how to create a toolkit [here](https://docs.arcade.dev/home/build-tools/create-a-toolkit) diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/__init__.py b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/Hubspot_Marketing.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/Hubspot_Marketing.json new file mode 100644 index 00000000..7c2b793c --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/Hubspot_Marketing.json @@ -0,0 +1,33640 @@ +{ + "name": "Hubspot_Marketing", + "spec_source": "openapi_spec", + "token_for_http_testing": "", + "package_name": "hubspot_marketing_api", + "package_dir_path": "/Users/rb/arcade/arcade-ai/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api", + "project_dir_path": "/Users/rb/arcade/arcade-ai/toolkits/hubspot_marketing_api", + "arcade_new_cmd_executed": true, + "api_endpoint_selection_customized": false, + "api_endpoint_for_http_testing": "", + "authorization_type": "oauth", + "auth_provider_id": "arcade-hubspot", + "where_to_provide_token": "header", + "token_key_name": "Authorization", + "token_value": "Bearer {authorization}", + "secrets": [], + "global_base_url": "https://api.hubapi.com", + "global_headers": {}, + "edit_operations": [], + "uuid": "9b6747a9-3ac9-4b60-8e86-b2b65a86305b", + "api_endpoints": [ + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_campaign_spend_item", + "description": { + "tagline": "Retrieve details of a specific campaign spend item.", + "detailed": "Use this tool to get information about a campaign spend item by providing its spendId and campaignGuid." + }, + "return_annotation": "Details of the specified campaign spend item.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_identifier", + "campaign_id" + ], + "description": "Unique identifier for the marketing campaign to retrieve the spend item from.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "spend_item_identifier", + "alternative_names": [ + "spend_id", + "spend_identifier" + ], + "description": "Unique identifier for the spend item in the campaign.", + "endpoint_argument_name": "spendId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "tags": [ + "Campaign Spend" + ], + "summary": "Read campaign spend item", + "description": "Read a campaign spend item by its spendId", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "spendId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "description": "Unique identifier for the spend item.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_campaign_spend", + "description": { + "tagline": "Update a specific campaign spend item by ID.", + "detailed": "Use this tool to modify the details of a particular spend item in a marketing campaign by providing the campaign and spend identifiers." + }, + "return_annotation": "Confirmation of updated campaign spend details.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_identifier", + "campaign_id" + ], + "description": "Unique identifier for the campaign.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "spend_identifier", + "alternative_names": [ + "spend_item_id", + "expense_id" + ], + "description": "Unique identifier for the spend item in the campaign to be updated.", + "endpoint_argument_name": "spendId" + }, + { + "name": "spend_amount", + "alternative_names": [ + "expense_amount", + "budget_amount" + ], + "description": "The new amount value for the campaign spend. Specify this as a number representing the monetary value.", + "endpoint_argument_name": "amount" + }, + { + "name": "spend_item_name", + "alternative_names": [ + "spend_name", + "item_title" + ], + "description": "The new name for the campaign spend item. This should be a descriptive string defining the spend item.", + "endpoint_argument_name": "name" + }, + { + "name": "spend_order", + "alternative_names": [ + "order_index", + "sequence_number" + ], + "description": "The order or sequence number of the spend item within the campaign. It determines the priority or arrangement of the spend items.", + "endpoint_argument_name": "order" + }, + { + "name": "spend_item_description", + "alternative_names": [ + "spending_description", + "expense_description" + ], + "description": "Details or notes about the campaign spend item.", + "endpoint_argument_name": "description" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "tags": [ + "Campaign Spend" + ], + "summary": "Update campaign spend item", + "description": "Update a specific campaign spend item by ID", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "spendId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "description": "Unique identifier for the spend item.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "amount", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "number" + }, + "schema_required": true + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "description", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "order", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "delete-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_campaign_spend_item", + "description": { + "tagline": "Deletes a specific campaign spend item by ID.", + "detailed": "Use this tool to delete a specific spend item from a marketing campaign using its ID. This is useful for managing and updating campaign expenses in HubSpot Marketing." + }, + "return_annotation": "Confirmation of campaign spend item deletion.", + "arguments": [ + { + "name": "campaign_identifier", + "alternative_names": [ + "campaign_id", + "marketing_campaign_guid" + ], + "description": "Unique identifier for the specific marketing campaign.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "spend_item_id", + "alternative_names": [ + "spend_identifier", + "spend_id" + ], + "description": "Unique identifier for the specific spend item to be deleted from the campaign.", + "endpoint_argument_name": "spendId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "tags": [ + "Campaign Spend" + ], + "summary": "Delete campaign spend item", + "description": "Delete a specific campaign spend item by ID", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "spendId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "description": "Unique identifier for the spend item.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/batch/update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_campaign_batch", + "description": { + "tagline": "Update a batch of marketing campaigns efficiently.", + "detailed": "Use this tool to update multiple marketing campaigns in a single request. The tool handles up to 50 campaigns per request, and can reset property values when an empty string is provided." + }, + "return_annotation": "Confirmation of batch campaign updates.", + "arguments": [ + { + "name": "campaign_update_details", + "alternative_names": [ + "update_details", + "campaign_batch_data" + ], + "description": "JSON array of campaign data to be updated. Each entry requires an 'id' and 'properties' object.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update a batch of campaigns", + "description": "This endpoint updates a batch of campaigns based on the provided input data.\nThe maximum number of items in a batch request is 50.\nIf an empty string (\"\") is passed for any property in the Batch Update, it will reset that property's value.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "id", + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_campaign_budget", + "description": { + "tagline": "Retrieve details of a specific marketing campaign budget item.", + "detailed": "This tool is used to obtain information about a specific budget item within a marketing campaign by providing the campaign GUID and budget ID. Use this tool to access detailed budget data for analysis or reporting purposes." + }, + "return_annotation": "Details of the specific marketing campaign budget item.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_identifier", + "campaign_id" + ], + "description": "The unique identifier for the marketing campaign to access its budget details.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "budget_item_id", + "alternative_names": [ + "budget_identifier", + "budget_id" + ], + "description": "Unique identifier for the budget item to retrieve details.", + "endpoint_argument_name": "budgetId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "tags": [ + "Campaign Budget" + ], + "summary": "Get budget item", + "description": "Get a specific budget item by ID", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "budgetId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "description": "Unique identifier for the budget item.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_campaign_budget", + "description": { + "tagline": "Update a specific campaign budget item by ID.", + "detailed": "Use this tool to update a particular budget item in a marketing campaign by providing the campaign GUID and the budget ID." + }, + "return_annotation": "Confirmation of the updated budget item.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_id", + "campaign_identifier" + ], + "description": "A unique identifier for the campaign. Use this to specify which campaign's budget item to update.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "budget_id", + "alternative_names": [ + "budget_identifier", + "budget_item_id" + ], + "description": "Unique identifier for the budget item to be updated.", + "endpoint_argument_name": "budgetId" + }, + { + "name": "budget_amount", + "alternative_names": [ + "budget_value", + "amount_to_set" + ], + "description": "The amount to set for the budget item. This is a numerical value representing the budget in the specified currency.", + "endpoint_argument_name": "amount" + }, + { + "name": "budget_item_name", + "alternative_names": [ + "budget_name", + "item_name" + ], + "description": "The new name for the budget item. It should be a descriptive label that clearly identifies the budget item within the campaign.", + "endpoint_argument_name": "name" + }, + { + "name": "priority_order", + "alternative_names": [ + "budget_order", + "sequence_number" + ], + "description": "Specify the order in which the budget item appears. Accepted values are integers.", + "endpoint_argument_name": "order" + }, + { + "name": "budget_item_description", + "alternative_names": [ + "budget_description", + "item_description" + ], + "description": "A string to describe the budget item. Provide a brief explanation of what this budget is for.", + "endpoint_argument_name": "description" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "tags": [ + "Campaign Budget" + ], + "summary": "Update budget item", + "description": "Update a specific budget item by ID", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "budgetId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "description": "Unique identifier for the budget item.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "amount", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "number" + }, + "schema_required": true + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "description", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "order", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "delete-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_campaign_budget_item", + "description": { + "tagline": "Delete a specific campaign budget item by ID.", + "detailed": "Use this tool to delete a specific budget item from a campaign using the campaignGuid and budgetId. Useful for managing or updating campaign budgets." + }, + "return_annotation": "Confirmation of budget item deletion.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_id", + "campaign_identifier" + ], + "description": "Unique identifier for the campaign to delete the budget item from.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "budget_item_id", + "alternative_names": [ + "budget_id", + "budget_identifier" + ], + "description": "Unique identifier for the budget item to be deleted.", + "endpoint_argument_name": "budgetId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "tags": [ + "Campaign Budget" + ], + "summary": "Delete budget item", + "description": "Delete a specific budget item by ID", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "budgetId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "description": "Unique identifier for the budget item.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "associate_asset_with_campaign", + "description": { + "tagline": "Associate a specified asset with a HubSpot campaign.", + "detailed": "This tool is used to link various asset types such as forms, lists, or emails with a specific HubSpot campaign. It's useful for managing and organizing marketing efforts across different platforms." + }, + "return_annotation": "Confirmation of the asset-campaign association.", + "arguments": [ + { + "name": "campaign_unique_identifier", + "alternative_names": [ + "campaign_uuid", + "campaign_id" + ], + "description": "Unique identifier for the campaign, formatted as a UUID. Essential for associating an asset with the correct campaign.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "asset_type", + "alternative_names": [ + "asset_kind", + "asset_category" + ], + "description": "Specify the asset type to associate with the campaign. Allowed values are FORM, OBJECT_LIST, and EXTERNAL_WEB_URL.", + "endpoint_argument_name": "assetType" + }, + { + "name": "asset_id", + "alternative_names": [ + "asset_identifier", + "asset_uuid" + ], + "description": "The unique identifier for the asset to be associated with a campaign. This should be provided as a string.", + "endpoint_argument_name": "assetId" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "tags": [ + "Campaign Asset" + ], + "summary": "Add asset association", + "description": "Associate a specified asset with a campaign. Using the API, you can create and remove associations for the following asset types: forms, static lists, external website pages, sequences, meetings, playbooks, feedback surveys, podcast episodes, sales documents, marketing emails, case studies, knowledge base articles, calls, and CTAs. \n\nFor other asset types, it is recommended to manage your associations directly in the campaign tool in HubSpot.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID" + }, + "description": "Unique identifier for the campaign, formatted as a UUID", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "assetType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for association via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL" + }, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for association via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "assetId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset" + }, + "description": "Id of the asset", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "disassociate_campaign_asset", + "description": { + "tagline": "Disassociate an asset from a HubSpot marketing campaign.", + "detailed": "Use this tool to remove a specified asset from a marketing campaign. Supported asset types include Forms, Static lists, and External website pages." + }, + "return_annotation": "Confirmation of asset disassociation from the campaign.", + "arguments": [ + { + "name": "campaign_unique_identifier", + "alternative_names": [ + "campaign_uuid", + "unique_campaign_id" + ], + "description": "Unique identifier for the campaign, formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "asset_type", + "alternative_names": [ + "asset_kind", + "asset_category" + ], + "description": "Specify the type of asset to disassociate, limited to FORM, OBJECT_LIST, or EXTERNAL_WEB_URL.", + "endpoint_argument_name": "assetType" + }, + { + "name": "asset_id", + "alternative_names": [ + "asset_identifier", + "asset_uuid" + ], + "description": "Unique identifier for the asset to be disassociated from the campaign.", + "endpoint_argument_name": "assetId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "tags": [ + "Campaign Asset" + ], + "summary": "Remove asset association", + "description": "Disassociate a specified asset from a campaign.\nImportant: Currently, only the following asset types can be associated and disassociated via the API: Forms, Static lists, External website pages", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "assetType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for disassociation via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL" + }, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for disassociation via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "assetId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset" + }, + "description": "Id of the asset", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/budget/totals", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_campaign_budget_details", + "description": { + "tagline": "Retrieve detailed budget and spend details for a campaign.", + "detailed": "This tool retrieves detailed information regarding the budget and spending for a specific marketing campaign, including total budget, total spend, and remaining budget. It's useful for understanding financial aspects of a campaign." + }, + "return_annotation": "Detailed budget and spend information for a specific campaign.", + "arguments": [ + { + "name": "campaign_unique_identifier", + "alternative_names": [ + "campaign_uuid", + "campaign_id" + ], + "description": "Unique identifier for the campaign, formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/budget/totals", + "tags": [ + "Campaign Budget" + ], + "summary": "Read budget", + "description": "Retrieve detailed information about the budget and spend items for a specified campaign, including the total budget, total spend, and remaining budget.\nBudget and Spend items may be returned in any order, but the order field specifies their sequence based on the creation date. The item with order 0 is the oldest, and items with higher order values are newer", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/batch/read", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_marketing_campaign_batches", + "description": { + "tagline": "Retrieve a batch of HubSpot marketing campaigns and assets.", + "detailed": "Use this tool to read a batch of marketing campaigns from HubSpot, along with their associated assets. The tool allows for processing up to 50 campaigns per request. Note that the campaigns returned may not be in the order requested, and duplicate campaign IDs will be handled by returning only unique entries." + }, + "return_annotation": "A list of marketing campaigns with associated assets.", + "arguments": [ + { + "name": "campaign_batch_inputs", + "alternative_names": [ + "campaign_input_list", + "batch_campaign_requests" + ], + "description": "A list of JSON objects, each containing an 'id' key, representing the campaign IDs to fetch. Supports up to 50 campaigns per request.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "fetch_start_date", + "alternative_names": [ + "start_date_for_metrics", + "metrics_fetch_start_date" + ], + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. Determines the period for asset metrics. Optional.", + "endpoint_argument_name": "startDate" + }, + { + "name": "end_date_for_asset_metrics", + "alternative_names": [ + "asset_metrics_end_date", + "fetch_metrics_until_date" + ], + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. If not provided, no asset metrics will be fetched.", + "endpoint_argument_name": "endDate" + }, + { + "name": "requested_properties", + "alternative_names": [ + "properties_to_return", + "response_properties" + ], + "description": "Comma-separated list of properties to return in the response. Ignored if values are empty, resulting in an empty properties map if not specified.", + "endpoint_argument_name": "properties" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/batch/read", + "tags": [ + "Batch" + ], + "summary": "Read a batch of campaigns", + "description": "This endpoint reads a batch of campaigns based on the provided input data and returns the campaigns along with their associated assets. \nThe maximum number of items in a batch request is 50.\nThe campaigns in the response are not guaranteed to be in the same order as they were provided in the request.\nIf duplicate campaign IDs are provided in the request, duplicates will be ignored. The response will include only unique IDs and will be returned without duplicates.\n", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "startDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.\n" + }, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.\n", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "endDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched." + }, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map." + }, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_campaigns", + "description": { + "tagline": "Retrieve a page of marketing campaigns with optional filters.", + "detailed": "This tool allows retrieval of a page of marketing campaigns based on query parameters such as name filtering, sorting, and pagination. You can also control the properties included in the response." + }, + "return_annotation": "A page of marketing campaigns with specified filters.", + "arguments": [ + { + "name": "sort_by", + "alternative_names": [ + "order_by", + "arrange_by" + ], + "description": "Specify the field to sort results by. Use '-' to denote descending order. Options are hs_name, createdAt, updatedAt. Default is hs_name.", + "endpoint_argument_name": "sort" + }, + { + "name": "pagination_cursor", + "alternative_names": [ + "pagination_after", + "cursor_after" + ], + "description": "A cursor for pagination. If provided, results start after the given cursor. Example: NTI1Cg%3D%3D", + "endpoint_argument_name": "after" + }, + { + "name": "max_results_limit", + "alternative_names": [ + "results_limit", + "campaigns_limit" + ], + "description": "Maximum number of campaigns to return (1-100). Default is 50.", + "endpoint_argument_name": "limit" + }, + { + "name": "campaign_name_filter", + "alternative_names": [ + "name_filter", + "campaign_name_substring" + ], + "description": "A substring to filter campaigns by name. Returns campaigns containing this substring. Optional: returns all if not provided.", + "endpoint_argument_name": "name" + }, + { + "name": "requested_properties", + "alternative_names": [ + "response_properties", + "included_properties" + ], + "description": "A list of properties to be included in the response. Comma-separate values are required. If any specified property is empty, it will be ignored.", + "endpoint_argument_name": "properties" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/", + "tags": [ + "Campaign" + ], + "summary": "Campaign search", + "description": "This endpoint allows users to search for and return a page of campaigns based on various query parameters. Users can filter by name, sort, and paginate through the campaigns, as well as control which properties are returned in the response.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "sort", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The field by which to sort the results. Allowed values are hs_name, createdAt, updatedAt. An optional '-' before the property name can denote descending order\nDefault: hs_name" + }, + "description": "The field by which to sort the results. Allowed values are hs_name, createdAt, updatedAt. An optional '-' before the property name can denote descending order\nDefault: hs_name", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to return. Allowed values range from 1 to 100\nDefault: 50" + }, + "description": "The maximum number of results to return. Allowed values range from 1 to 100\nDefault: 50", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A filter to return campaigns whose names contain the specified substring. This allows partial matching of campaign names, returning all campaigns that include the given substring in their name. If this parameter is not provided, the search will return all campaigns" + }, + "description": "A filter to return campaigns whose names contain the specified substring. This allows partial matching of campaign names, returning all campaigns that include the given substring in their name. If this parameter is not provided, the search will return all campaigns", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map" + }, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_marketing_campaign", + "description": { + "tagline": "Create a marketing campaign and retrieve its details.", + "detailed": "This tool creates a marketing campaign using provided properties and returns the campaign object, including essential details like campaignGuid and created properties." + }, + "return_annotation": "Returns the created campaign object with details.", + "arguments": [ + { + "name": "campaign_properties", + "alternative_names": [ + "marketing_campaign_options", + "campaign_details" + ], + "description": "A JSON object containing the details and properties of the campaign to be created, such as name, type, start date, etc.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/", + "tags": [ + "Campaign" + ], + "summary": "Create a campaign", + "description": "Create a campaign with the given properties and return the campaign object, including the campaignGuid and created properties. ", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/reports/metrics", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_campaign_attribution_metrics", + "description": { + "tagline": "Retrieve attribution metrics for a specific campaign.", + "detailed": "Retrieves key attribution metrics for a specified campaign, including sessions, new contacts, and influenced contacts. Use this tool to analyze campaign performance." + }, + "return_annotation": "Key attribution metrics for the specified campaign.", + "arguments": [ + { + "name": "campaign_unique_identifier", + "alternative_names": [ + "campaign_id", + "campaign_uuid" + ], + "description": "Unique identifier for the campaign, formatted as a UUID. Required to retrieve specific campaign metrics.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "start_date_for_report", + "alternative_names": [ + "report_start_date", + "begin_date_for_report" + ], + "description": "The start date for the report data, formatted as YYYY-MM-DD. Default is 2006-01-01.", + "endpoint_argument_name": "startDate" + }, + { + "name": "report_end_date", + "alternative_names": [ + "end_date_for_report", + "reporting_end_date" + ], + "description": "Set the end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.", + "endpoint_argument_name": "endDate" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/reports/metrics", + "tags": [ + "Campaign Reporting" + ], + "summary": "Get Campaign Metrics\n", + "description": "This endpoint retrieves key attribution metrics for a specified campaign, such as sessions, new contacts, and influenced contacts.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "startDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "endDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "list_campaign_assets", + "description": { + "tagline": "Retrieve all assets of a specified type for a campaign.", + "detailed": "This tool lists all assets of a particular type within a specified marketing campaign. It can also fetch asset metrics if start and end dates are provided, allowing for detailed analysis of campaign performance." + }, + "return_annotation": "List of assets for a specified campaign and asset type.", + "arguments": [ + { + "name": "campaign_identifier", + "alternative_names": [ + "campaign_id", + "campaign_uuid" + ], + "description": "Unique identifier for the campaign in UUID format.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "asset_type", + "alternative_names": [ + "type_of_asset", + "asset_category" + ], + "description": "The type of asset to fetch for the campaign, e.g., 'email', 'webpage'.", + "endpoint_argument_name": "assetType" + }, + { + "name": "pagination_cursor", + "alternative_names": [ + "cursor", + "page_cursor" + ], + "description": "A cursor for pagination. If provided, results start after this cursor. Example: NTI1Cg%3D%3D", + "endpoint_argument_name": "after" + }, + { + "name": "maximum_results_limit", + "alternative_names": [ + "results_count_limit", + "max_assets_returned" + ], + "description": "The maximum number of asset results to return. Default is 10.", + "endpoint_argument_name": "limit" + }, + { + "name": "metrics_start_date", + "alternative_names": [ + "start_date_for_metrics", + "asset_metrics_start_date" + ], + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. Used to fetch metrics for a specified period. If not provided, no metrics will be fetched.", + "endpoint_argument_name": "startDate" + }, + { + "name": "end_date_for_asset_metrics", + "alternative_names": [ + "asset_metrics_end_date", + "end_date_metrics" + ], + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. Used for fetching metrics of assets within a specified period. Optional parameter.", + "endpoint_argument_name": "endDate" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}", + "tags": [ + "Campaign Asset" + ], + "summary": "List assets", + "description": "This endpoint lists all assets of the campaign by asset type. The assetType parameter is required, and each request can only fetch assets of a single type.\nAsset metrics can also be fetched along with the assets; they are available only if start and end dates are provided.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to return.\nDefault: 10" + }, + "description": "The maximum number of results to return.\nDefault: 10", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "startDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.\n" + }, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.\n", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "endDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "assetType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset to fetch." + }, + "description": "The type of asset to fetch.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/batch/archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_campaigns_batch", + "description": { + "tagline": "Delete a batch of marketing campaigns.", + "detailed": "Use this tool to delete multiple marketing campaigns in a single batch request (up to 50 campaigns). The response will indicate if the request was processed, but it won't specify the success of individual deletions." + }, + "return_annotation": "Indicates batch archive request was processed.", + "arguments": [ + { + "name": "campaign_ids_to_archive", + "alternative_names": [ + "campaign_ids", + "campaign_identifiers" + ], + "description": "A JSON array of campaign IDs to archive, with a maximum of 50 IDs per batch.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Delete a batch of campaigns", + "description": "This endpoint deletes a batch of campaigns. \nThe maximum number of items in a batch request is 50.\nThe response will always be 204 No Content, regardless of whether the campaigns exist or not, whether they were successfully deleted or not, or if only some of the campaigns in the batch were deleted.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/reports/revenue", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_campaign_revenue_report", + "description": { + "tagline": "Fetch revenue attribution report for a specific campaign.", + "detailed": "This tool retrieves the revenue attribution report data for a specified marketing campaign using its unique campaign GUID." + }, + "return_annotation": "Revenue attribution report for specified campaign.", + "arguments": [ + { + "name": "campaign_unique_identifier", + "alternative_names": [ + "campaign_id", + "campaign_guid" + ], + "description": "Unique identifier for the campaign, formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "attribution_model", + "alternative_names": [ + "revenue_model", + "attribution_scheme" + ], + "description": "The revenue attribution model to be used. Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED. Defaults to LINEAR.", + "endpoint_argument_name": "attributionModel" + }, + { + "name": "report_start_date", + "alternative_names": [ + "report_begin_date", + "start_date_for_report" + ], + "description": "The start date for the report data in the format YYYY-MM-DD. Default is 2006-01-01.", + "endpoint_argument_name": "startDate" + }, + { + "name": "report_end_date", + "alternative_names": [ + "report_ending_date", + "report_conclusion_date" + ], + "description": "End date for the report data in YYYY-MM-DD format. Defaults to the current date.", + "endpoint_argument_name": "endDate" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/reports/revenue", + "tags": [ + "Campaign Reporting" + ], + "summary": "Fetch revenue", + "description": "Fetch revenue attribution report data for a specified campaign\n", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.revenue.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "attributionModel", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED\nDefault value: LINEAR" + }, + "description": "Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED\nDefault value: LINEAR", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "startDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "endDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/batch/create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_marketing_campaign_batch", + "description": { + "tagline": "Create a batch of marketing campaigns in HubSpot.", + "detailed": "This tool is used to batch create up to 50 marketing campaigns in HubSpot Marketing. The campaigns in the response may not be in the same order as they were submitted in the request." + }, + "return_annotation": "Information about the created marketing campaigns.", + "arguments": [ + { + "name": "campaigns_batch_data", + "alternative_names": [ + "campaigns_data", + "batch_campaigns" + ], + "description": "A JSON array containing up to 50 marketing campaign objects to be created in HubSpot. Each object should specify the necessary campaign details.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/batch/create", + "tags": [ + "Batch" + ], + "summary": "Create a batch of campaigns", + "description": "This endpoint creates a batch of campaigns. The maximum number of items in a batch request is 50.\nThe campaigns in the response are not guaranteed to be in the same order as they were provided in the request.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/{campaignGuid}/budget", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "add_campaign_budget_item", + "description": { + "tagline": "Add a new budget item to a marketing campaign.", + "detailed": "Use this tool to add a budget item to an existing campaign in HubSpot Marketing. Ideal for updating campaign financials." + }, + "return_annotation": "Confirmation of the added budget item to the campaign.", + "arguments": [ + { + "name": "campaign_id", + "alternative_names": [ + "campaign_guid", + "campaign_identifier" + ], + "description": "Unique identifier for the campaign in HubSpot Marketing.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "budget_amount", + "alternative_names": [ + "campaign_budget_amount", + "budget_value" + ], + "description": "The monetary amount for the budget item. It should be a numeric value denoting the budget amount to add to the campaign.", + "endpoint_argument_name": "amount" + }, + { + "name": "budget_item_name", + "alternative_names": [ + "budget_name", + "item_title" + ], + "description": "Name of the budget item to be added to the campaign. It should be descriptive and concise.", + "endpoint_argument_name": "name" + }, + { + "name": "budget_item_order", + "alternative_names": [ + "budget_order", + "item_priority" + ], + "description": "The position or priority of the budget item in the list. Provide as an integer.", + "endpoint_argument_name": "order" + }, + { + "name": "budget_item_description", + "alternative_names": [ + "campaign_budget_description", + "description_of_budget_item" + ], + "description": "A brief description of the budget item being added to the campaign. This can include details about what the budget will be used for and any other relevant information.", + "endpoint_argument_name": "description" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/{campaignGuid}/budget", + "tags": [ + "Campaign Budget" + ], + "summary": "Add budget item", + "description": "Add a new budget item to the campaign", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "amount", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "number" + }, + "schema_required": true + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "description", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "order", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_campaign_details", + "description": { + "tagline": "Retrieve details and metrics for a specific marketing campaign.", + "detailed": "Use this tool to get detailed information about a marketing campaign using its campaignGuid. It also provides information about associated assets, and if start and end dates are given, metrics for those assets." + }, + "return_annotation": "Campaign information and asset metrics if available.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_identifier", + "campaign_id" + ], + "description": "Unique identifier for the campaign, formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "metrics_start_date", + "alternative_names": [ + "start_metrics_date", + "metrics_begin_date" + ], + "description": "Start date for fetching asset metrics. Format as YYYY-MM-DD. Metrics are only retrieved if both start and end dates are provided.", + "endpoint_argument_name": "startDate" + }, + { + "name": "end_date_for_asset_metrics", + "alternative_names": [ + "asset_metrics_end_date", + "metrics_end_date" + ], + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. If omitted, no metrics will be retrieved.", + "endpoint_argument_name": "endDate" + }, + { + "name": "properties_list", + "alternative_names": [ + "returned_properties", + "response_properties" + ], + "description": "List specific properties to return in the response. Leave empty for an empty properties map.", + "endpoint_argument_name": "properties" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}", + "tags": [ + "Campaign" + ], + "summary": "Read a campaign", + "description": "Get a campaign identified by a specific campaignGuid with the given properties. Along with the campaign information, it also returns information about assets. Depending on the query parameters used, this can also be used to return information about the corresponding assets' metrics. Metrics are available only if startDate and endDate are provided.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "startDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "endDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": " End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "description": " End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "properties", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object, they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map." + }, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object, they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "schema_required": false + } + ], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/campaigns/{campaignGuid}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_marketing_campaign", + "description": { + "tagline": "Delete a specified marketing campaign.", + "detailed": "Use this tool to delete a marketing campaign from the system by providing the campaign's GUID. A 204 No Content response is returned, indicating the request was processed, regardless of whether the campaign existed." + }, + "return_annotation": "Confirmation of campaign deletion request.", + "arguments": [ + { + "name": "campaign_guid", + "alternative_names": [ + "campaign_uuid", + "campaign_id" + ], + "description": "Unique identifier for the campaign, formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/campaigns/{campaignGuid}", + "tags": [ + "Campaign" + ], + "summary": "Delete campaign ", + "description": "Delete a specified campaign from the system.\nThis call will return a 204 No Content response regardless of whether the campaignGuid provided corresponds to an existing campaign or not.", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/marketing/v3/campaigns/{campaignGuid}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_campaign_properties", + "description": { + "tagline": "Update properties of a HubSpot marketing campaign.", + "detailed": "Use this tool to perform a partial update of a marketing campaign in HubSpot by providing the campaignGuid and the new property values. Note that only existing, mutable properties can be updated; read-only and non-existent properties will cause an error. Passing an empty string will reset a property's value." + }, + "return_annotation": "Updates details of a specified marketing campaign.", + "arguments": [ + { + "name": "campaign_uuid", + "alternative_names": [ + "campaign_guid", + "campaign_identifier" + ], + "description": "Unique identifier for the campaign, formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "campaign_update_properties", + "alternative_names": [ + "campaign_properties_update", + "update_campaign_attributes" + ], + "description": "A JSON object containing the properties with their new values. Include only mutable properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/marketing/v3/campaigns/{campaignGuid}", + "tags": [ + "Basic" + ], + "summary": "Update campaign", + "description": "Perform a partial update of a campaign identified by the specified campaignGuid. Provided property values will be overwritten. Read-only and non-existent properties will cause 400 error.\nIf an empty string is passed for any property in the Batch Update, it will reset that property's value.\n", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID.\n" + }, + "description": "Unique identifier for the campaign, formatted as a UUID.\n", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "properties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_campaign_contact_ids", + "description": { + "tagline": "Fetch contact IDs for a specific campaign and contact type.", + "detailed": "Use this tool to obtain the contact IDs associated with a particular marketing campaign and specified contact type in HubSpot. It is useful for analyzing campaign reach and engagement with specific contact demographics." + }, + "return_annotation": "Returns a list of contact IDs for a specified campaign and contact type.", + "arguments": [ + { + "name": "campaign_identifier", + "alternative_names": [ + "campaign_guid", + "unique_campaign_id" + ], + "description": "Unique identifier for the campaign formatted as a UUID.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "contact_type_filter", + "alternative_names": [ + "contact_type_metric", + "influenced_contact_type" + ], + "description": "Specifies the type of metric for filtering contacts. Options: contactFirstTouch, contactLastTouch, influencedContacts.", + "endpoint_argument_name": "contactType" + }, + { + "name": "start_date", + "alternative_names": [ + "report_start_date", + "begin_date" + ], + "description": "The start date for the report data in YYYY-MM-DD format. Default is 2006-01-01.", + "endpoint_argument_name": "startDate" + }, + { + "name": "report_end_date", + "alternative_names": [ + "end_report_date", + "conclude_date" + ], + "description": "The end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.", + "endpoint_argument_name": "endDate" + }, + { + "name": "contact_fetch_limit", + "alternative_names": [ + "contact_limit", + "max_contacts_to_fetch" + ], + "description": "Specify the maximum number of contact IDs to retrieve, with a default of 100.", + "endpoint_argument_name": "limit" + }, + { + "name": "pagination_cursor", + "alternative_names": [ + "next_page_cursor", + "pagination_token" + ], + "description": "A string cursor for pagination to start results after the given point. Example: NTI1Cg%3D%3D", + "endpoint_argument_name": "after" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}", + "tags": [ + "Campaign Reporting" + ], + "summary": "Fetch contact IDs", + "description": "Fetch the list of contact IDs for the specified campaign and contact type", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "startDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "endDate", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Limit for the number of contacts to fetch\nDefault: 100" + }, + "description": "Limit for the number of contacts to fetch\nDefault: 100", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "contactType", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of metric to filter the influenced contacts. Allowed values: contactFirstTouch, contactLastTouch, influencedContacts" + }, + "description": "The type of metric to filter the influenced contacts. Allowed values: contactFirstTouch, contactLastTouch, influencedContacts", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/campaigns/{campaignGuid}/spend", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_campaign_spend", + "description": { + "tagline": "Create a new campaign spend item for a marketing campaign.", + "detailed": "This tool creates a new spend item for a specified marketing campaign. It should be called when you need to add or track expenditures related to a specific campaign." + }, + "return_annotation": "Information about the created campaign spend item.", + "arguments": [ + { + "name": "campaign_id", + "alternative_names": [ + "campaign_guid", + "campaign_identifier" + ], + "description": "Unique identifier for the marketing campaign to add the spend item to.", + "endpoint_argument_name": "campaignGuid" + }, + { + "name": "spend_amount", + "alternative_names": [ + "expenditure_amount", + "campaign_spend_value" + ], + "description": "The monetary value of the spend item to be added to the campaign. This should be a numerical value representing the amount in the currency used by the campaign.", + "endpoint_argument_name": "amount" + }, + { + "name": "spend_item_name", + "alternative_names": [ + "campaign_spend_name", + "expenditure_name" + ], + "description": "The name of the spend item to be created for the campaign. This should be a descriptive title or label for the expenditure.", + "endpoint_argument_name": "name" + }, + { + "name": "spend_item_order", + "alternative_names": [ + "expenditure_order", + "campaign_spend_sequence" + ], + "description": "The order of the spend item in the campaign. Use an integer to specify the sequence.", + "endpoint_argument_name": "order" + }, + { + "name": "spend_description", + "alternative_names": [ + "expense_description", + "cost_details" + ], + "description": "A brief description of the campaign spend item, detailing the nature or purpose of the expenditure.", + "endpoint_argument_name": "description" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/campaigns/{campaignGuid}/spend", + "tags": [ + "Campaign Spend" + ], + "summary": "Create campaign spend item", + "description": "Create a new campaign spend item", + "requires_security": true, + "oauth_scopes": [ + "marketing.campaigns.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "campaignGuid", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "description": "Unique identifier for the campaign.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "amount", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "number" + }, + "schema_required": true + }, + { + "name": "name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "description", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "order", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/marketing/v3/forms/{formId}_getById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_form_by_id", + "description": { + "tagline": "Retrieve a marketing form by its ID.", + "detailed": "Use this tool to get detailed information about a specific marketing form by providing its unique form ID." + }, + "return_annotation": "Details of the form specified by the form ID.", + "arguments": [ + { + "name": "form_id", + "alternative_names": [ + "form_identifier", + "form_unique_id" + ], + "description": "The unique identifier for the specific marketing form to retrieve. This ID is required to fetch the form details.", + "endpoint_argument_name": "formId" + }, + { + "name": "return_archived_only", + "alternative_names": [ + "archived_only_filter", + "only_return_archived" + ], + "description": "Set to true to return only archived forms.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/forms/{formId}", + "tags": [ + "Forms" + ], + "summary": "Get a form definition", + "description": "Returns a form based on the form ID provided.", + "requires_security": true, + "oauth_scopes": [ + "forms" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "formId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the form" + }, + "description": "The unique identifier of the form", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/forms/{formId}_replace", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_form", + "description": { + "tagline": "Update all fields of a HubSpot form.", + "detailed": "Use this tool to update every field in a specified HubSpot form by replacing the current form definition." + }, + "return_annotation": "Confirmation of form update completion.", + "arguments": [ + { + "name": "hubspot_form_id", + "alternative_names": [ + "form_identifier", + "form_id" + ], + "description": "The unique identifier for the HubSpot form to update. This ID specifies which form's fields will be replaced.", + "endpoint_argument_name": "formId" + }, + { + "name": "form_fields_data", + "alternative_names": [ + "form_content", + "form_update_payload" + ], + "description": "JSON object containing the new definition for the HubSpot form fields.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/forms/{formId}", + "tags": [ + "Forms" + ], + "summary": "Update a form definition", + "description": "Update all fields of a hubspot form definition.", + "requires_security": true, + "oauth_scopes": [ + "forms" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "formId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": {}, + "allOf": [ + { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "properties": {} + } + ] + }, + { + "type": "object", + "properties": { + "formType": { + "type": "string", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "type": "object", + "description": "A collection of up to three form fields usually displayed in a row.", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "email", + "description": "A form field used for collecting an email address.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "description": "A form field that will be displayed based on what the customer entered in another field.", + "properties": { + "dependentCondition": { + "type": "object", + "description": "A condition based on customer input", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ] + }, + "dependentField": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "properties": {} + }, + { + "type": "object", + "title": "phone", + "description": "A form field used for collecting a phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ] + }, + { + "type": "object", + "title": "mobile_phone", + "description": "A form field used for collecting a mobile phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "single_line_text", + "description": "A form field consisting of a single-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multi_line_text", + "description": "A form field consisting of a multiple-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "number", + "description": "A form field used for collecting a numeric value.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a numeric value should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "single_checkbox", + "description": "A form field consisting of a single checkbox.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multiple_checkboxes", + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "dropdown", + "description": "A field consisting of a drop down with multiple choices.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "radio", + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "datepicker", + "description": "A form field used to select a date", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "file", + "description": "A form field used for uploading one or more files.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "payment_link_radio", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + } + ] + } + }, + "required": [ + "dependentCondition", + "dependentField" + ] + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how an email address should be validated.", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "phone", + "description": "A form field used for collecting a phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ] + }, + { + "type": "object", + "title": "mobile_phone", + "description": "A form field used for collecting a mobile phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "single_line_text", + "description": "A form field consisting of a single-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multi_line_text", + "description": "A form field consisting of a multiple-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "number", + "description": "A form field used for collecting a numeric value.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a numeric value should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "single_checkbox", + "description": "A form field consisting of a single checkbox.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multiple_checkboxes", + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "dropdown", + "description": "A field consisting of a drop down with multiple choices.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "radio", + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "datepicker", + "description": "A form field used to select a date", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "file", + "description": "A form field used for uploading one or more files.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "payment_link_radio", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + } + ] + } + } + }, + "required": [ + "fields", + "groupType", + "richTextType" + ] + } + }, + "configuration": { + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + }, + "required": [ + "objectTypeId", + "value" + ] + } + }, + "postSubmitAction": { + "type": "object", + "description": "What should happen after the customer submits the form.", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "required": [ + "type", + "value" + ] + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + }, + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ] + }, + "displayOptions": { + "type": "object", + "description": "Options for styling the form.", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "type": "object", + "description": "Styling options for the form", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ] + } + }, + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ] + }, + "legalConsentOptions": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "none", + "properties": { + "type": { + "type": "string", + "enum": [ + "none" + ] + } + }, + "required": [ + "type" + ] + }, + { + "type": "object", + "title": "legitimate_interest", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + }, + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ] + }, + { + "type": "object", + "title": "explicit_consent_to_process", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + }, + "required": [ + "label", + "required", + "subscriptionTypeId" + ] + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + }, + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ] + }, + { + "type": "object", + "title": "implicit_consent_to_process", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + }, + "required": [ + "label", + "required", + "subscriptionTypeId" + ] + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + }, + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ] + } + ] + } + }, + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ] + } + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"properties\": {},\n \"allOf\": [\n {\n \"properties\": {},\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/HubSpotFormDefinition\",\n \"has_circular_reference\": true\n }\n ]\n },\n {\n \"required\": [\n \"archived\",\n \"configuration\",\n \"createdAt\",\n \"displayOptions\",\n \"fieldGroups\",\n \"formType\",\n \"id\",\n \"legalConsentOptions\",\n \"name\",\n \"updatedAt\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"formType\": {\n \"type\": \"string\",\n \"default\": \"hubspot\",\n \"enum\": [\n \"hubspot\"\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"archived\": {\n \"type\": \"boolean\"\n },\n \"archivedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"fieldGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"fields\",\n \"groupType\",\n \"richTextType\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"groupType\": {\n \"type\": \"string\",\n \"enum\": [\n \"default_group\",\n \"progressive\",\n \"queued\"\n ]\n },\n \"richTextType\": {\n \"type\": \"string\",\n \"description\": \"The type of rich text included. The default value is text.\",\n \"enum\": [\n \"text\",\n \"image\"\n ]\n },\n \"richText\": {\n \"type\": \"string\",\n \"description\": \"A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields.\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"The form fields included in the group\",\n \"items\": {\n \"oneOf\": [\n {\n \"title\": \"email\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"required\": [\n \"dependentCondition\",\n \"dependentField\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"dependentCondition\": {\n \"required\": [\n \"operator\",\n \"rangeEnd\",\n \"rangeStart\",\n \"value\",\n \"values\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"rangeStart\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"contains\",\n \"doesnt_contain\",\n \"str_starts_with\",\n \"str_ends_with\",\n \"lt\",\n \"lte\",\n \"gt\",\n \"gte\",\n \"between\",\n \"not_between\",\n \"within_time_reverse\",\n \"within_time\",\n \"set_any\",\n \"set_not_any\",\n \"set_all\",\n \"set_not_all\",\n \"set_eq\",\n \"set_neq\",\n \"is_not_empty\"\n ]\n },\n \"rangeEnd\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"A condition based on customer input\"\n },\n \"dependentField\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/EmailField\",\n \"has_circular_reference\": true\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"description\": \"A form field that will be displayed based on what the customer entered in another field.\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"email\",\n \"enum\": [\n \"email\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"blockedEmailDomains\",\n \"useDefaultBlockList\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"useDefaultBlockList\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to block the free email providers.\"\n },\n \"blockedEmailDomains\": {\n \"type\": \"array\",\n \"description\": \"A list of email domains to block.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Describes how an email address should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting an email address.\"\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n }\n },\n \"description\": \"A collection of up to three form fields usually displayed in a row.\"\n }\n },\n \"configuration\": {\n \"required\": [\n \"allowLinkToResetKnownValues\",\n \"archivable\",\n \"cloneable\",\n \"createNewContactForNewEmail\",\n \"editable\",\n \"language\",\n \"notifyContactOwner\",\n \"notifyRecipients\",\n \"postSubmitAction\",\n \"prePopulateKnownValues\",\n \"recaptchaEnabled\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createNewContactForNewEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to create a new contact when a form is submitted with an email address that doesn\\u2019t match any in your existing contacts records.\"\n },\n \"editable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be edited.\"\n },\n \"allowLinkToResetKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission.\"\n },\n \"lifecycleStages\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectTypeId\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"The objectTypeId for both contact and company\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal name of the contact's lifecycle stage set when submitting a form\"\n }\n }\n }\n },\n \"postSubmitAction\": {\n \"required\": [\n \"type\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The action to take after submit. The default action is displaying a thank you message.\",\n \"enum\": [\n \"thank_you\",\n \"redirect_url\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The thank you text or the page to redirect to.\"\n }\n },\n \"description\": \"What should happen after the customer submits the form.\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"The language of the form.\",\n \"enum\": [\n \"af\",\n \"ar-eg\",\n \"bg\",\n \"bn\",\n \"ca-es\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en\",\n \"es\",\n \"es-mx\",\n \"fi\",\n \"fr\",\n \"fr-ca\",\n \"he-il\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"ms\",\n \"nl\",\n \"no-no\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sv\",\n \"th\",\n \"tl\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-cn\",\n \"zh-hk\",\n \"zh-tw\"\n ]\n },\n \"prePopulateKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether contact fields should pre-populate with known information when a contact returns to your site.\"\n },\n \"cloneable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be cloned.\"\n },\n \"notifyContactOwner\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to send a notification email to the contact owner when a submission is received.\"\n },\n \"recaptchaEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether CAPTCHA (spam prevention) is enabled.\"\n },\n \"archivable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be archived.\"\n },\n \"notifyRecipients\": {\n \"type\": \"array\",\n \"description\": \"The list of user IDs to receive a notification email when a submission is received.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"displayOptions\": {\n \"required\": [\n \"renderRawHtml\",\n \"style\",\n \"submitButtonText\",\n \"theme\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"renderRawHtml\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form will render as raw HTML as opposed to inside an iFrame.\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"description\": \"The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.\",\n \"enum\": [\n \"default_style\",\n \"canvas\",\n \"linear\",\n \"round\",\n \"sharp\",\n \"legacy\"\n ]\n },\n \"submitButtonText\": {\n \"type\": \"string\",\n \"description\": \"The text displayed on the form submit button.\"\n },\n \"style\": {\n \"required\": [\n \"backgroundWidth\",\n \"fontFamily\",\n \"helpTextColor\",\n \"helpTextSize\",\n \"labelTextColor\",\n \"labelTextSize\",\n \"legalConsentTextColor\",\n \"legalConsentTextSize\",\n \"submitAlignment\",\n \"submitColor\",\n \"submitFontColor\",\n \"submitSize\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"labelTextSize\": {\n \"type\": \"string\"\n },\n \"legalConsentTextColor\": {\n \"type\": \"string\"\n },\n \"fontFamily\": {\n \"type\": \"string\"\n },\n \"legalConsentTextSize\": {\n \"type\": \"string\"\n },\n \"backgroundWidth\": {\n \"type\": \"string\"\n },\n \"helpTextSize\": {\n \"type\": \"string\"\n },\n \"submitFontColor\": {\n \"type\": \"string\"\n },\n \"labelTextColor\": {\n \"type\": \"string\"\n },\n \"submitAlignment\": {\n \"type\": \"string\",\n \"enum\": [\n \"left\",\n \"right\",\n \"center\"\n ]\n },\n \"submitSize\": {\n \"type\": \"string\"\n },\n \"helpTextColor\": {\n \"type\": \"string\"\n },\n \"submitColor\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Styling options for the form\"\n }\n },\n \"description\": \"Options for styling the form.\"\n },\n \"legalConsentOptions\": {\n \"oneOf\": [\n {\n \"title\": \"none\",\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"default\": \"none\",\n \"enum\": [\n \"none\"\n ]\n }\n }\n },\n {\n \"title\": \"legitimate_interest\",\n \"required\": [\n \"lawfulBasis\",\n \"privacyText\",\n \"subscriptionTypeIds\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"lawfulBasis\": {\n \"type\": \"string\",\n \"enum\": [\n \"lead\",\n \"client\",\n \"other\"\n ]\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"legitimate_interest\",\n \"enum\": [\n \"legitimate_interest\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"explicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"consentToProcessCheckboxLabel\": {\n \"type\": \"string\"\n },\n \"consentToProcessFooterText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"explicit_consent_to_process\",\n \"enum\": [\n \"explicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"implicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"implicit_consent_to_process\",\n \"enum\": [\n \"implicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"x-hubspot-sub-type-impl\": true\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/forms/{formId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "archive_marketing_form", + "description": { + "tagline": "Archive a marketing form in HubSpot.", + "detailed": "Use this tool to archive a form in HubSpot Marketing, preventing new submissions. The form will be permanently deleted after 3 months." + }, + "return_annotation": "Confirmation of form archive request.", + "arguments": [ + { + "name": "form_id", + "alternative_names": [ + "form_identifier", + "form_unique_id" + ], + "description": "The ID of the form to archive in HubSpot. This is required to process the archive request.", + "endpoint_argument_name": "formId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/forms/{formId}", + "tags": [ + "Forms" + ], + "summary": "Archive a form definition", + "description": "Archive a form definition. New submissions will not be accepted and the form definition will be permanently deleted after 3 months.", + "requires_security": true, + "oauth_scopes": [ + "forms" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "formId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the form to archive." + }, + "description": "The ID of the form to archive.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/marketing/v3/forms/{formId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_hubspot_marketing_form", + "description": { + "tagline": "Update components of a HubSpot marketing form.", + "detailed": "Use this tool to modify specific components of an existing marketing form in HubSpot by providing the form ID. Ideal for updating form details without creating a new form." + }, + "return_annotation": "Confirmation of form update.", + "arguments": [ + { + "name": "form_id", + "alternative_names": [ + "form_identifier", + "form_unique_id" + ], + "description": "The unique identifier for the form to update. Must be provided to specify which form's components to update.", + "endpoint_argument_name": "formId" + }, + { + "name": "form_update_details", + "alternative_names": [ + "form_update_payload", + "form_configuration" + ], + "description": "JSON object defining the components to update in the form, such as field groups, configuration settings, and display options.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/marketing/v3/forms/{formId}", + "tags": [ + "Forms" + ], + "summary": "Partially update a form definition", + "description": "Update some of the form definition components", + "requires_security": true, + "oauth_scopes": [ + "forms" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "formId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the form to update." + }, + "description": "The ID of the form to update.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fieldGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "default_group", + "progressive", + "queued" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "richTextType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "text", + "image" + ], + "properties": null, + "inner_properties": null, + "description": "The type of rich text included. The default value is text." + }, + "richText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The form fields included in the group" + } + }, + "description": "The fields in the form, grouped in rows." + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether this form is archived." + }, + "configuration": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "createNewContactForNewEmail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "objectTypeId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The objectTypeId for both contact and company" + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + }, + "description": null + }, + "postSubmitAction": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "thank_you", + "redirect_url" + ], + "properties": null, + "inner_properties": null, + "description": "The action to take after submit. The default action is displaying a thank you message." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The thank you text or the page to redirect to." + } + }, + "inner_properties": null, + "description": "What should happen after the customer submits the form." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ], + "properties": null, + "inner_properties": null, + "description": "The language of the form." + }, + "prePopulateKnownValues": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The list of user IDs to receive a notification email when a submission is received." + } + }, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the form. Expected to be unique for a hub." + }, + "legalConsentOptions": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "displayOptions": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "renderRawHtml": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "theme": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ], + "properties": null, + "inner_properties": null, + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page." + }, + "submitButtonText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displayed on the form submit button." + }, + "style": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "labelTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "legalConsentTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontFamily": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "legalConsentTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "helpTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "labelTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitAlignment": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "left", + "right", + "center" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "submitSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "helpTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Styling options for the form" + } + }, + "inner_properties": null, + "description": "Options for styling the form." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "fieldGroups": { + "type": "array", + "description": "The fields in the form, grouped in rows.", + "items": { + "type": "object", + "description": "A collection of up to three form fields usually displayed in a row.", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "email", + "description": "A form field used for collecting an email address.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "description": "A form field that will be displayed based on what the customer entered in another field.", + "properties": { + "dependentCondition": { + "type": "object", + "description": "A condition based on customer input", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ] + }, + "dependentField": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "properties": {} + }, + { + "type": "object", + "title": "phone", + "description": "A form field used for collecting a phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ] + }, + { + "type": "object", + "title": "mobile_phone", + "description": "A form field used for collecting a mobile phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "single_line_text", + "description": "A form field consisting of a single-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multi_line_text", + "description": "A form field consisting of a multiple-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "number", + "description": "A form field used for collecting a numeric value.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a numeric value should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "single_checkbox", + "description": "A form field consisting of a single checkbox.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multiple_checkboxes", + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "dropdown", + "description": "A field consisting of a drop down with multiple choices.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "radio", + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "datepicker", + "description": "A form field used to select a date", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "file", + "description": "A form field used for uploading one or more files.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "payment_link_radio", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + } + ] + } + }, + "required": [ + "dependentCondition", + "dependentField" + ] + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how an email address should be validated.", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "phone", + "description": "A form field used for collecting a phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ] + }, + { + "type": "object", + "title": "mobile_phone", + "description": "A form field used for collecting a mobile phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "single_line_text", + "description": "A form field consisting of a single-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multi_line_text", + "description": "A form field consisting of a multiple-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "number", + "description": "A form field used for collecting a numeric value.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a numeric value should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "single_checkbox", + "description": "A form field consisting of a single checkbox.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multiple_checkboxes", + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "dropdown", + "description": "A field consisting of a drop down with multiple choices.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "radio", + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "datepicker", + "description": "A form field used to select a date", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "file", + "description": "A form field used for uploading one or more files.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "payment_link_radio", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + } + ] + } + } + }, + "required": [ + "fields", + "groupType", + "richTextType" + ] + } + }, + "archived": { + "type": "boolean", + "description": "Whether this form is archived." + }, + "configuration": { + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + }, + "required": [ + "objectTypeId", + "value" + ] + } + }, + "postSubmitAction": { + "type": "object", + "description": "What should happen after the customer submits the form.", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "required": [ + "type", + "value" + ] + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + }, + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ] + }, + "name": { + "type": "string", + "description": "The name of the form. Expected to be unique for a hub." + }, + "legalConsentOptions": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "none", + "properties": { + "type": { + "type": "string", + "enum": [ + "none" + ] + } + }, + "required": [ + "type" + ] + }, + { + "type": "object", + "title": "legitimate_interest", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + }, + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ] + }, + { + "type": "object", + "title": "explicit_consent_to_process", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + }, + "required": [ + "label", + "required", + "subscriptionTypeId" + ] + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + }, + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ] + }, + { + "type": "object", + "title": "implicit_consent_to_process", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + }, + "required": [ + "label", + "required", + "subscriptionTypeId" + ] + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + }, + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ] + } + ] + }, + "displayOptions": { + "type": "object", + "description": "Options for styling the form.", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "type": "object", + "description": "Styling options for the form", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ] + } + }, + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ] + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"fieldGroups\": {\n \"type\": \"array\",\n \"description\": \"The fields in the form, grouped in rows.\",\n \"items\": {\n \"required\": [\n \"fields\",\n \"groupType\",\n \"richTextType\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"groupType\": {\n \"type\": \"string\",\n \"enum\": [\n \"default_group\",\n \"progressive\",\n \"queued\"\n ]\n },\n \"richTextType\": {\n \"type\": \"string\",\n \"description\": \"The type of rich text included. The default value is text.\",\n \"enum\": [\n \"text\",\n \"image\"\n ]\n },\n \"richText\": {\n \"type\": \"string\",\n \"description\": \"A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields.\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"The form fields included in the group\",\n \"items\": {\n \"oneOf\": [\n {\n \"title\": \"email\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"required\": [\n \"dependentCondition\",\n \"dependentField\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"dependentCondition\": {\n \"required\": [\n \"operator\",\n \"rangeEnd\",\n \"rangeStart\",\n \"value\",\n \"values\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"rangeStart\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"contains\",\n \"doesnt_contain\",\n \"str_starts_with\",\n \"str_ends_with\",\n \"lt\",\n \"lte\",\n \"gt\",\n \"gte\",\n \"between\",\n \"not_between\",\n \"within_time_reverse\",\n \"within_time\",\n \"set_any\",\n \"set_not_any\",\n \"set_all\",\n \"set_not_all\",\n \"set_eq\",\n \"set_neq\",\n \"is_not_empty\"\n ]\n },\n \"rangeEnd\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"A condition based on customer input\"\n },\n \"dependentField\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/EmailField\",\n \"has_circular_reference\": true\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"description\": \"A form field that will be displayed based on what the customer entered in another field.\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"email\",\n \"enum\": [\n \"email\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"blockedEmailDomains\",\n \"useDefaultBlockList\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"useDefaultBlockList\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to block the free email providers.\"\n },\n \"blockedEmailDomains\": {\n \"type\": \"array\",\n \"description\": \"A list of email domains to block.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Describes how an email address should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting an email address.\"\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n }\n },\n \"description\": \"A collection of up to three form fields usually displayed in a row.\"\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this form is archived.\"\n },\n \"configuration\": {\n \"required\": [\n \"allowLinkToResetKnownValues\",\n \"archivable\",\n \"cloneable\",\n \"createNewContactForNewEmail\",\n \"editable\",\n \"language\",\n \"notifyContactOwner\",\n \"notifyRecipients\",\n \"postSubmitAction\",\n \"prePopulateKnownValues\",\n \"recaptchaEnabled\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createNewContactForNewEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to create a new contact when a form is submitted with an email address that doesn\\u2019t match any in your existing contacts records.\"\n },\n \"editable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be edited.\"\n },\n \"allowLinkToResetKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission.\"\n },\n \"lifecycleStages\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectTypeId\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"The objectTypeId for both contact and company\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal name of the contact's lifecycle stage set when submitting a form\"\n }\n }\n }\n },\n \"postSubmitAction\": {\n \"required\": [\n \"type\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The action to take after submit. The default action is displaying a thank you message.\",\n \"enum\": [\n \"thank_you\",\n \"redirect_url\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The thank you text or the page to redirect to.\"\n }\n },\n \"description\": \"What should happen after the customer submits the form.\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"The language of the form.\",\n \"enum\": [\n \"af\",\n \"ar-eg\",\n \"bg\",\n \"bn\",\n \"ca-es\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en\",\n \"es\",\n \"es-mx\",\n \"fi\",\n \"fr\",\n \"fr-ca\",\n \"he-il\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"ms\",\n \"nl\",\n \"no-no\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sv\",\n \"th\",\n \"tl\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-cn\",\n \"zh-hk\",\n \"zh-tw\"\n ]\n },\n \"prePopulateKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether contact fields should pre-populate with known information when a contact returns to your site.\"\n },\n \"cloneable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be cloned.\"\n },\n \"notifyContactOwner\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to send a notification email to the contact owner when a submission is received.\"\n },\n \"recaptchaEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether CAPTCHA (spam prevention) is enabled.\"\n },\n \"archivable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be archived.\"\n },\n \"notifyRecipients\": {\n \"type\": \"array\",\n \"description\": \"The list of user IDs to receive a notification email when a submission is received.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the form. Expected to be unique for a hub.\"\n },\n \"legalConsentOptions\": {\n \"oneOf\": [\n {\n \"title\": \"none\",\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"default\": \"none\",\n \"enum\": [\n \"none\"\n ]\n }\n }\n },\n {\n \"title\": \"legitimate_interest\",\n \"required\": [\n \"lawfulBasis\",\n \"privacyText\",\n \"subscriptionTypeIds\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"lawfulBasis\": {\n \"type\": \"string\",\n \"enum\": [\n \"lead\",\n \"client\",\n \"other\"\n ]\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"legitimate_interest\",\n \"enum\": [\n \"legitimate_interest\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"explicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"consentToProcessCheckboxLabel\": {\n \"type\": \"string\"\n },\n \"consentToProcessFooterText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"explicit_consent_to_process\",\n \"enum\": [\n \"explicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"implicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"implicit_consent_to_process\",\n \"enum\": [\n \"implicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n },\n \"displayOptions\": {\n \"required\": [\n \"renderRawHtml\",\n \"style\",\n \"submitButtonText\",\n \"theme\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"renderRawHtml\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form will render as raw HTML as opposed to inside an iFrame.\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"description\": \"The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.\",\n \"enum\": [\n \"default_style\",\n \"canvas\",\n \"linear\",\n \"round\",\n \"sharp\",\n \"legacy\"\n ]\n },\n \"submitButtonText\": {\n \"type\": \"string\",\n \"description\": \"The text displayed on the form submit button.\"\n },\n \"style\": {\n \"required\": [\n \"backgroundWidth\",\n \"fontFamily\",\n \"helpTextColor\",\n \"helpTextSize\",\n \"labelTextColor\",\n \"labelTextSize\",\n \"legalConsentTextColor\",\n \"legalConsentTextSize\",\n \"submitAlignment\",\n \"submitColor\",\n \"submitFontColor\",\n \"submitSize\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"labelTextSize\": {\n \"type\": \"string\"\n },\n \"legalConsentTextColor\": {\n \"type\": \"string\"\n },\n \"fontFamily\": {\n \"type\": \"string\"\n },\n \"legalConsentTextSize\": {\n \"type\": \"string\"\n },\n \"backgroundWidth\": {\n \"type\": \"string\"\n },\n \"helpTextSize\": {\n \"type\": \"string\"\n },\n \"submitFontColor\": {\n \"type\": \"string\"\n },\n \"labelTextColor\": {\n \"type\": \"string\"\n },\n \"submitAlignment\": {\n \"type\": \"string\",\n \"enum\": [\n \"left\",\n \"right\",\n \"center\"\n ]\n },\n \"submitSize\": {\n \"type\": \"string\"\n },\n \"helpTextColor\": {\n \"type\": \"string\"\n },\n \"submitColor\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Styling options for the form\"\n }\n },\n \"description\": \"Options for styling the form.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/forms/_getPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "list_hubspot_forms", + "description": { + "tagline": "Retrieve a list of HubSpot marketing forms.", + "detailed": "Call this tool to obtain a list of marketing forms from HubSpot. It applies search filters if provided, otherwise returns the first 20 forms by default." + }, + "return_annotation": "A list of HubSpot marketing forms based on search filters.", + "arguments": [ + { + "name": "paging_cursor_token", + "alternative_names": [ + "next_page_token", + "pagination_token" + ], + "description": "The token indicating the cursor position for paginated results. Use `paging.next.after` from the previous response to fetch more results.", + "endpoint_argument_name": "after" + }, + { + "name": "results_per_page", + "alternative_names": [ + "max_items_per_page", + "page_size" + ], + "description": "Specify the maximum number of forms to retrieve per page.", + "endpoint_argument_name": "limit" + }, + { + "name": "included_form_types", + "alternative_names": [ + "form_type_filters", + "types_of_forms" + ], + "description": "List of form types to include in results, e.g., 'hubspot', 'workflow', etc.", + "endpoint_argument_name": "formTypes" + }, + { + "name": "return_only_archived_forms", + "alternative_names": [ + "show_only_archived_forms", + "include_only_archived_forms" + ], + "description": "Set to true to return only archived forms in the results.", + "endpoint_argument_name": "archived" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/forms/", + "tags": [ + "Forms" + ], + "summary": "Get a list of forms", + "description": "Returns a list of forms based on the search filters. By default, it returns the first 20 `hubspot` forms", + "requires_security": true, + "oauth_scopes": [ + "forms" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "description": "The maximum number of results to display per page.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "archived", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "description": "Whether to return only results that have been archived.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "boolean" + }, + "schema_required": false + }, + { + "name": "formTypes", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The form types to be included in the results." + }, + "description": "The form types to be included in the results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "hubspot", + "captured", + "flow", + "blog_comment", + "all" + ] + } + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/forms/_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_marketing_form", + "description": { + "tagline": "Create a new marketing form in HubSpot.", + "detailed": "This tool is used to add a new form to HubSpot's marketing systems. It should be called whenever you need to create a new form for collecting marketing data." + }, + "return_annotation": "Confirmation of the form creation in HubSpot.", + "arguments": [ + { + "name": "form_details", + "alternative_names": [ + "marketing_form_data", + "hubspot_form_content" + ], + "description": "JSON object containing the details and fields for the new HubSpot marketing form. Include title, fields, and any necessary properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/forms/", + "tags": [ + "Forms" + ], + "summary": "Create a form", + "description": "Add a new `hubspot` form", + "requires_security": true, + "oauth_scopes": [ + "forms" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "properties": {}, + "allOf": [ + { + "type": "object", + "properties": {} + }, + { + "type": "object", + "properties": { + "formType": { + "type": "string", + "enum": [ + "hubspot" + ] + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "type": "object", + "description": "A collection of up to three form fields usually displayed in a row.", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "email", + "description": "A form field used for collecting an email address.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "description": "A form field that will be displayed based on what the customer entered in another field.", + "properties": { + "dependentCondition": { + "type": "object", + "description": "A condition based on customer input", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ] + }, + "dependentField": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "properties": {} + }, + { + "type": "object", + "title": "phone", + "description": "A form field used for collecting a phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ] + }, + { + "type": "object", + "title": "mobile_phone", + "description": "A form field used for collecting a mobile phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "single_line_text", + "description": "A form field consisting of a single-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multi_line_text", + "description": "A form field consisting of a multiple-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "number", + "description": "A form field used for collecting a numeric value.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a numeric value should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "single_checkbox", + "description": "A form field consisting of a single checkbox.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multiple_checkboxes", + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "dropdown", + "description": "A field consisting of a drop down with multiple choices.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "radio", + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "datepicker", + "description": "A form field used to select a date", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "file", + "description": "A form field used for uploading one or more files.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "payment_link_radio", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + } + ] + } + }, + "required": [ + "dependentCondition", + "dependentField" + ] + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how an email address should be validated.", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "phone", + "description": "A form field used for collecting a phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ] + }, + { + "type": "object", + "title": "mobile_phone", + "description": "A form field used for collecting a mobile phone number.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a phone number should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ] + }, + { + "type": "object", + "title": "single_line_text", + "description": "A form field consisting of a single-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multi_line_text", + "description": "A form field consisting of a multiple-line text box.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "number", + "description": "A form field used for collecting a numeric value.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "type": "object", + "description": "Describes how a numeric value should be validated.", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ] + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "single_checkbox", + "description": "A form field consisting of a single checkbox.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "multiple_checkboxes", + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "dropdown", + "description": "A field consisting of a drop down with multiple choices.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "radio", + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + }, + { + "type": "object", + "title": "datepicker", + "description": "A form field used to select a date", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "file", + "description": "A form field used for uploading one or more files.", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ] + }, + { + "type": "object", + "title": "payment_link_radio", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + }, + "required": [ + "displayOrder", + "label", + "value" + ] + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ] + } + ] + } + } + }, + "required": [ + "fields", + "groupType", + "richTextType" + ] + } + }, + "configuration": { + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + }, + "required": [ + "objectTypeId", + "value" + ] + } + }, + "postSubmitAction": { + "type": "object", + "description": "What should happen after the customer submits the form.", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "required": [ + "type", + "value" + ] + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + }, + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ] + }, + "displayOptions": { + "type": "object", + "description": "Options for styling the form.", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "type": "object", + "description": "Styling options for the form", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ] + } + }, + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ] + }, + "legalConsentOptions": { + "type": "object", + "properties": {}, + "oneOf": [ + { + "type": "object", + "title": "none", + "properties": { + "type": { + "type": "string", + "enum": [ + "none" + ] + } + }, + "required": [ + "type" + ] + }, + { + "type": "object", + "title": "legitimate_interest", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + }, + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ] + }, + { + "type": "object", + "title": "explicit_consent_to_process", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + }, + "required": [ + "label", + "required", + "subscriptionTypeId" + ] + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + }, + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ] + }, + { + "type": "object", + "title": "implicit_consent_to_process", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + }, + "required": [ + "label", + "required", + "subscriptionTypeId" + ] + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + }, + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ] + } + ] + } + }, + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "legalConsentOptions", + "name", + "updatedAt" + ] + } + ] + } + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"properties\": {},\n \"oneOf\": [\n {\n \"properties\": {},\n \"allOf\": [\n {\n \"$ref\": \"#/components/schemas/FormDefinitionCreateRequestBase\",\n \"has_circular_reference\": true\n },\n {\n \"required\": [\n \"archived\",\n \"configuration\",\n \"createdAt\",\n \"displayOptions\",\n \"fieldGroups\",\n \"formType\",\n \"legalConsentOptions\",\n \"name\",\n \"updatedAt\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"formType\": {\n \"type\": \"string\",\n \"default\": \"hubspot\",\n \"enum\": [\n \"hubspot\"\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"archived\": {\n \"type\": \"boolean\"\n },\n \"archivedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"fieldGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"fields\",\n \"groupType\",\n \"richTextType\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"groupType\": {\n \"type\": \"string\",\n \"enum\": [\n \"default_group\",\n \"progressive\",\n \"queued\"\n ]\n },\n \"richTextType\": {\n \"type\": \"string\",\n \"description\": \"The type of rich text included. The default value is text.\",\n \"enum\": [\n \"text\",\n \"image\"\n ]\n },\n \"richText\": {\n \"type\": \"string\",\n \"description\": \"A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields.\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"The form fields included in the group\",\n \"items\": {\n \"oneOf\": [\n {\n \"title\": \"email\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"required\": [\n \"dependentCondition\",\n \"dependentField\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"dependentCondition\": {\n \"required\": [\n \"operator\",\n \"rangeEnd\",\n \"rangeStart\",\n \"value\",\n \"values\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"rangeStart\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"contains\",\n \"doesnt_contain\",\n \"str_starts_with\",\n \"str_ends_with\",\n \"lt\",\n \"lte\",\n \"gt\",\n \"gte\",\n \"between\",\n \"not_between\",\n \"within_time_reverse\",\n \"within_time\",\n \"set_any\",\n \"set_not_any\",\n \"set_all\",\n \"set_not_all\",\n \"set_eq\",\n \"set_neq\",\n \"is_not_empty\"\n ]\n },\n \"rangeEnd\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"A condition based on customer input\"\n },\n \"dependentField\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/EmailField\",\n \"has_circular_reference\": true\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"description\": \"A form field that will be displayed based on what the customer entered in another field.\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"email\",\n \"enum\": [\n \"email\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"blockedEmailDomains\",\n \"useDefaultBlockList\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"useDefaultBlockList\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to block the free email providers.\"\n },\n \"blockedEmailDomains\": {\n \"type\": \"array\",\n \"description\": \"A list of email domains to block.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Describes how an email address should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting an email address.\"\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n }\n },\n \"description\": \"A collection of up to three form fields usually displayed in a row.\"\n }\n },\n \"configuration\": {\n \"required\": [\n \"allowLinkToResetKnownValues\",\n \"archivable\",\n \"cloneable\",\n \"createNewContactForNewEmail\",\n \"editable\",\n \"language\",\n \"notifyContactOwner\",\n \"notifyRecipients\",\n \"postSubmitAction\",\n \"prePopulateKnownValues\",\n \"recaptchaEnabled\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createNewContactForNewEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to create a new contact when a form is submitted with an email address that doesn\\u2019t match any in your existing contacts records.\"\n },\n \"editable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be edited.\"\n },\n \"allowLinkToResetKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission.\"\n },\n \"lifecycleStages\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectTypeId\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"The objectTypeId for both contact and company\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal name of the contact's lifecycle stage set when submitting a form\"\n }\n }\n }\n },\n \"postSubmitAction\": {\n \"required\": [\n \"type\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The action to take after submit. The default action is displaying a thank you message.\",\n \"enum\": [\n \"thank_you\",\n \"redirect_url\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The thank you text or the page to redirect to.\"\n }\n },\n \"description\": \"What should happen after the customer submits the form.\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"The language of the form.\",\n \"enum\": [\n \"af\",\n \"ar-eg\",\n \"bg\",\n \"bn\",\n \"ca-es\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en\",\n \"es\",\n \"es-mx\",\n \"fi\",\n \"fr\",\n \"fr-ca\",\n \"he-il\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"ms\",\n \"nl\",\n \"no-no\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sv\",\n \"th\",\n \"tl\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-cn\",\n \"zh-hk\",\n \"zh-tw\"\n ]\n },\n \"prePopulateKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether contact fields should pre-populate with known information when a contact returns to your site.\"\n },\n \"cloneable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be cloned.\"\n },\n \"notifyContactOwner\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to send a notification email to the contact owner when a submission is received.\"\n },\n \"recaptchaEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether CAPTCHA (spam prevention) is enabled.\"\n },\n \"archivable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be archived.\"\n },\n \"notifyRecipients\": {\n \"type\": \"array\",\n \"description\": \"The list of user IDs to receive a notification email when a submission is received.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"displayOptions\": {\n \"required\": [\n \"renderRawHtml\",\n \"style\",\n \"submitButtonText\",\n \"theme\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"renderRawHtml\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form will render as raw HTML as opposed to inside an iFrame.\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"description\": \"The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.\",\n \"enum\": [\n \"default_style\",\n \"canvas\",\n \"linear\",\n \"round\",\n \"sharp\",\n \"legacy\"\n ]\n },\n \"submitButtonText\": {\n \"type\": \"string\",\n \"description\": \"The text displayed on the form submit button.\"\n },\n \"style\": {\n \"required\": [\n \"backgroundWidth\",\n \"fontFamily\",\n \"helpTextColor\",\n \"helpTextSize\",\n \"labelTextColor\",\n \"labelTextSize\",\n \"legalConsentTextColor\",\n \"legalConsentTextSize\",\n \"submitAlignment\",\n \"submitColor\",\n \"submitFontColor\",\n \"submitSize\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"labelTextSize\": {\n \"type\": \"string\"\n },\n \"legalConsentTextColor\": {\n \"type\": \"string\"\n },\n \"fontFamily\": {\n \"type\": \"string\"\n },\n \"legalConsentTextSize\": {\n \"type\": \"string\"\n },\n \"backgroundWidth\": {\n \"type\": \"string\"\n },\n \"helpTextSize\": {\n \"type\": \"string\"\n },\n \"submitFontColor\": {\n \"type\": \"string\"\n },\n \"labelTextColor\": {\n \"type\": \"string\"\n },\n \"submitAlignment\": {\n \"type\": \"string\",\n \"enum\": [\n \"left\",\n \"right\",\n \"center\"\n ]\n },\n \"submitSize\": {\n \"type\": \"string\"\n },\n \"helpTextColor\": {\n \"type\": \"string\"\n },\n \"submitColor\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Styling options for the form\"\n }\n },\n \"description\": \"Options for styling the form.\"\n },\n \"legalConsentOptions\": {\n \"oneOf\": [\n {\n \"title\": \"none\",\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"default\": \"none\",\n \"enum\": [\n \"none\"\n ]\n }\n }\n },\n {\n \"title\": \"legitimate_interest\",\n \"required\": [\n \"lawfulBasis\",\n \"privacyText\",\n \"subscriptionTypeIds\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"lawfulBasis\": {\n \"type\": \"string\",\n \"enum\": [\n \"lead\",\n \"client\",\n \"other\"\n ]\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"legitimate_interest\",\n \"enum\": [\n \"legitimate_interest\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"explicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"consentToProcessCheckboxLabel\": {\n \"type\": \"string\"\n },\n \"consentToProcessFooterText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"explicit_consent_to_process\",\n \"enum\": [\n \"explicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"implicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"implicit_consent_to_process\",\n \"enum\": [\n \"implicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"x-hubspot-sub-type-impl\": true\n }\n ]\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/emails/statistics/list", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_email_statistics", + "description": { + "tagline": "Get aggregated email statistics in a specified time span.", + "detailed": "Use this tool to obtain aggregated statistics for emails sent within a specific time period. It also provides a list of all emails sent during that period." + }, + "return_annotation": "Aggregated email statistics and sent email list.", + "arguments": [] + }, + "method": "GET", + "path": "/marketing/v3/emails/statistics/list", + "tags": [ + "Statistics" + ], + "summary": "Get aggregated statistics", + "description": "Use this endpoint to get aggregated statistics of emails sent in a specified time span. It also returns the list of emails that were sent during the time span.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/{emailId}/publish", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "publish_hubspot_email", + "description": { + "tagline": "Publish a HubSpot marketing email.", + "detailed": "Use this tool to publish a marketing email in HubSpot by specifying the email ID. This should be called when you need to make an email live as part of a marketing campaign." + }, + "return_annotation": "Confirmation of email publication in HubSpot.", + "arguments": [ + { + "name": "hubspot_email_id", + "alternative_names": [ + "marketing_email_id", + "email_identifier" + ], + "description": "The unique identifier for the HubSpot marketing email to publish.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/{emailId}/publish", + "tags": [ + "Public_VNext_Emails" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "marketing-email", + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/ab-test/create-variation", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_ab_test_email_variation", + "description": { + "tagline": "Create a new variation for an email A/B test.", + "detailed": "Use this tool to generate a new variation of an existing email for conducting A/B tests in your marketing campaigns. This is useful for testing different email content to optimize engagement and performance." + }, + "return_annotation": "Information about the newly created email variation.", + "arguments": [ + { + "name": "variation_name", + "alternative_names": [ + "email_variation_title", + "email_test_variant_name" + ], + "description": "The name of the new email variation for the A/B test. Provide a descriptive name to easily identify this variation.", + "endpoint_argument_name": "variationName" + }, + { + "name": "email_content_id", + "alternative_names": [ + "email_test_content_id", + "ab_test_email_id" + ], + "description": "ID of the email content to create a variation for A/B testing.", + "endpoint_argument_name": "contentId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/ab-test/create-variation", + "tags": [ + "Public_VNext_Emails" + ], + "summary": "Create an A/B test variation", + "description": "Create a new variation for an email A/B test", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "variationName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "contentId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the object to test." + }, + "description": "ID of the object to test.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "ID of the object to test." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"contentId\",\n \"variationName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"variationName\": {\n \"type\": \"string\"\n },\n \"contentId\": {\n \"type\": \"string\",\n \"description\": \"ID of the object to test.\"\n }\n },\n \"description\": \"Request body object for creating A/B tests.\",\n \"example\": {\n \"contentId\": \"7\",\n \"variantName\": \"AB Test - Number 7\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/marketing/v3/emails/statistics/histogram", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_email_statistics", + "description": { + "tagline": "Fetch aggregated email statistics in specified intervals.", + "detailed": "This tool retrieves aggregated email statistics over specified time intervals, providing insights into email performance during each period." + }, + "return_annotation": "Aggregated email statistics over specified intervals.", + "arguments": [] + }, + "method": "GET", + "path": "/marketing/v3/emails/statistics/histogram", + "tags": [ + "Statistics" + ], + "summary": "Get aggregated statistic intervals", + "description": "Get aggregated statistics in intervals for a specified time span. Each interval contains aggregated statistics of the emails that were sent in that time.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/emails/{emailId}/ab-test/get-variation", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_email_ab_test_variation", + "description": { + "tagline": "Retrieve the variation of an A/B test marketing email.", + "detailed": "Use this tool to get the opposite variation of a specified A/B marketing email. Ideal for determining the alternative version presented in a marketing email campaign." + }, + "return_annotation": "The variation of an A/B marketing email.", + "arguments": [ + { + "name": "email_identifier", + "alternative_names": [ + "email_id", + "campaign_email_id" + ], + "description": "The unique identifier of the marketing email to obtain its A/B test variation.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/emails/{emailId}/ab-test/get-variation", + "tags": [ + "Marketing Emails" + ], + "summary": "Get the variation of a an A/B marketing email", + "description": "This endpoint lets you obtain the variation of an A/B marketing email. If the email is variation A (master) it will return variation B (variant) and vice versa.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/{emailId}/draft/reset", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "reset_email_draft_to_live", + "description": { + "tagline": "Reset an email draft to match the live version.", + "detailed": "Use this tool to reset an email draft to a copy of its currently live version in HubSpot Marketing. This is useful when you want to discard changes made to a draft and revert to the original published version." + }, + "return_annotation": "Confirmation that the email draft has been reset.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_unique_id" + ], + "description": "The unique identifier for the email draft to be reset. This is a string value used to specify which draft to revert.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/{emailId}/draft/reset", + "tags": [ + "Marketing Emails" + ], + "summary": "Reset Draft", + "description": "Resets the draft back to a copy of the live object.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "restore_email_revision_to_draft", + "description": { + "tagline": "Restore a previous email revision to draft state.", + "detailed": "Use this tool to revert a marketing email back to a previous revision, setting it to DRAFT. This will overwrite any current content in the draft for that email." + }, + "return_annotation": "Confirmation of email revision restoration to draft status.", + "arguments": [ + { + "name": "email_identifier", + "alternative_names": [ + "email_id", + "email_unique_identifier" + ], + "description": "The unique identifier of the marketing email whose revision is to be restored to draft. This should match the specific email ID format used by HubSpot.", + "endpoint_argument_name": "emailId" + }, + { + "name": "revision_id", + "alternative_names": [ + "revision_identifier", + "email_revision_id" + ], + "description": "The unique identifier of the email revision to be restored to draft state.", + "endpoint_argument_name": "revisionId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft", + "tags": [ + "Marketing Emails" + ], + "summary": "Restore a revision of a marketing email to DRAFT state", + "description": "Restores a previous revision of a marketing email to DRAFT state. If there is currently something in the draft for that object, it is overwritten. ", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + }, + { + "name": "revisionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/emails/{emailId}/draft", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "retrieve_email_draft", + "description": { + "tagline": "Retrieve the draft version of a specified email.", + "detailed": "This tool retrieves the draft version of a specified email by its ID from HubSpot Marketing. If no draft exists, the published version is returned instead. It should be used when you need to access the current draft or latest version of an email." + }, + "return_annotation": "The draft or published version of the specified email.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_unique_id" + ], + "description": "The unique identifier of the email to retrieve the draft for. This ID is used to specify which email's draft or published version should be accessed.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/emails/{emailId}/draft", + "tags": [ + "Marketing Emails" + ], + "summary": "Get draft version of a marketing email", + "description": "Get the draft version of an email (if it exists). If no draft version exists, the published email is returned.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/marketing/v3/emails/{emailId}/draft", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_email_draft", + "description": { + "tagline": "Create or update the draft version of a marketing email.", + "detailed": "This tool creates or updates the draft version of a marketing email. If no draft exists, it creates a draft from the current live email and applies changes. Use this tool to modify email drafts before finalizing them." + }, + "return_annotation": "Information about the updated or created email draft.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "marketing_email_id", + "draft_email_id" + ], + "description": "The unique identifier of the marketing email to update or create a draft for. This is required to specify which email draft you are modifying.", + "endpoint_argument_name": "emailId" + }, + { + "name": "marketing_email_object", + "alternative_names": [ + "email_draft_data", + "draft_email_details" + ], + "description": "A JSON object representing marketing email details to update or create a draft. Includes content, subject, publish date, language, etc.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/marketing/v3/emails/{emailId}/draft", + "tags": [ + "Marketing Emails" + ], + "summary": "Create or update draft version", + "description": "Create or update the draft version of a marketing email. If no draft exists, the system creates a draft from the current \u201clive\u201d email then applies the request body to that draft. The draft version only lives on the buffer\u2014the email is not cloned.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "A marketing email object with properties that should overwrite the corresponding properties in the email's current draft." + }, + "description": "A marketing email object with properties that should overwrite the corresponding properties in the email's current draft.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Properties of a marketing email you can update via the API.", + "properties": { + "rssData": { + "type": "object", + "description": "RSS related data if it is a blog or rss email.", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "type": "object", + "description": "AB testing related data. This property is only returned for AB type emails.", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + } + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object", + "description": "Data structure representing the content of the email.", + "properties": { + "smartFields": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + } + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "type": "object", + "description": "Data structure representing the subscription fields of the email.", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + } + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "type": "object", + "description": "Data structure representing the from fields on the email.", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "type": "object", + "description": "Data structure representing the to fields of the email.", + "properties": { + "contactIlsLists": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + }, + "contactLists": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + } + } + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"A marketing email object with properties that should overwrite the corresponding properties in the email's current draft.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"rssData\": {\n \"type\": \"object\",\n \"properties\": {\n \"blogImageMaxWidth\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"blogEmailType\": {\n \"type\": \"string\"\n },\n \"hubspotBlogId\": {\n \"type\": \"string\"\n },\n \"rssEntryTemplate\": {\n \"type\": \"string\"\n },\n \"timing\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"useHeadlineAsSubject\": {\n \"type\": \"boolean\"\n },\n \"blogLayout\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"RSS related data if it is a blog or rss email.\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"The subject of the email.\"\n },\n \"testing\": {\n \"type\": \"object\",\n \"properties\": {\n \"isAbVariation\": {\n \"type\": \"boolean\"\n },\n \"abSamplingDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if the results are inconclusive after the test period, master or variant.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abSampleSizeDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if there are too few recipients to conduct an AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abStatus\": {\n \"type\": \"string\",\n \"description\": \"Status of the AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abTestPercentage\": {\n \"type\": \"integer\",\n \"description\": \"The size of your test group.\",\n \"format\": \"int32\"\n },\n \"hoursToWait\": {\n \"type\": \"integer\",\n \"description\": \"Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.\",\n \"format\": \"int32\"\n },\n \"testId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the AB test.\"\n },\n \"abSuccessMetric\": {\n \"type\": \"string\",\n \"description\": \"Metric to determine the version that will be sent to the remaining contacts.\",\n \"enum\": [\n \"CLICKS_BY_OPENS\",\n \"CLICKS_BY_DELIVERED\",\n \"OPENS_BY_DELIVERED\"\n ]\n }\n },\n \"description\": \"AB testing related data. This property is only returned for AB type emails.\"\n },\n \"publishDate\": {\n \"type\": \"string\",\n \"description\": \"The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.\",\n \"format\": \"date-time\"\n },\n \"language\": {\n \"type\": \"string\",\n \"enum\": [\n \"af\",\n \"af-na\",\n \"af-za\",\n \"agq\",\n \"agq-cm\",\n \"ak\",\n \"ak-gh\",\n \"am\",\n \"am-et\",\n \"ann\",\n \"ann-ng\",\n \"ar\",\n \"ar-001\",\n \"ar-ae\",\n \"ar-bh\",\n \"ar-dj\",\n \"ar-dz\",\n \"ar-eg\",\n \"ar-eh\",\n \"ar-er\",\n \"ar-il\",\n \"ar-iq\",\n \"ar-jo\",\n \"ar-km\",\n \"ar-kw\",\n \"ar-lb\",\n \"ar-ly\",\n \"ar-ma\",\n \"ar-mr\",\n \"ar-om\",\n \"ar-ps\",\n \"ar-qa\",\n \"ar-sa\",\n \"ar-sd\",\n \"ar-so\",\n \"ar-ss\",\n \"ar-sy\",\n \"ar-td\",\n \"ar-tn\",\n \"ar-ye\",\n \"as\",\n \"asa\",\n \"asa-tz\",\n \"ast\",\n \"ast-es\",\n \"as-in\",\n \"az\",\n \"az-az\",\n \"bas\",\n \"bas-cm\",\n \"be\",\n \"bem\",\n \"bem-zm\",\n \"bez\",\n \"bez-tz\",\n \"be-by\",\n \"bg\",\n \"bgc\",\n \"bgc-in\",\n \"bg-bg\",\n \"bho\",\n \"bho-in\",\n \"bm\",\n \"bm-ml\",\n \"bn\",\n \"bn-bd\",\n \"bn-in\",\n \"bo\",\n \"bo-cn\",\n \"bo-in\",\n \"br\",\n \"brx\",\n \"brx-in\",\n \"br-fr\",\n \"bs\",\n \"bs-ba\",\n \"ca\",\n \"ca-ad\",\n \"ca-es\",\n \"ca-fr\",\n \"ca-it\",\n \"ccp\",\n \"ccp-bd\",\n \"ccp-in\",\n \"ce\",\n \"ceb\",\n \"ceb-ph\",\n \"ce-ru\",\n \"cgg\",\n \"cgg-ug\",\n \"chr\",\n \"chr-us\",\n \"ckb\",\n \"ckb-iq\",\n \"ckb-ir\",\n \"cs\",\n \"cs-cz\",\n \"cu\",\n \"cu-ru\",\n \"cv\",\n \"cv-ru\",\n \"cy\",\n \"cy-gb\",\n \"da\",\n \"dav\",\n \"dav-ke\",\n \"da-dk\",\n \"da-gl\",\n \"de\",\n \"de-at\",\n \"de-be\",\n \"de-ch\",\n \"de-de\",\n \"de-gr\",\n \"de-it\",\n \"de-li\",\n \"de-lu\",\n \"dje\",\n \"dje-ne\",\n \"doi\",\n \"doi-in\",\n \"dsb\",\n \"dsb-de\",\n \"dua\",\n \"dua-cm\",\n \"dyo\",\n \"dyo-sn\",\n \"dz\",\n \"dz-bt\",\n \"ebu\",\n \"ebu-ke\",\n \"ee\",\n \"ee-gh\",\n \"ee-tg\",\n \"el\",\n \"el-cy\",\n \"el-gr\",\n \"en\",\n \"en-001\",\n \"en-150\",\n \"en-ae\",\n \"en-ag\",\n \"en-ai\",\n \"en-as\",\n \"en-at\",\n \"en-au\",\n \"en-bb\",\n \"en-be\",\n \"en-bi\",\n \"en-bm\",\n \"en-bs\",\n \"en-bw\",\n \"en-bz\",\n \"en-ca\",\n \"en-cc\",\n \"en-ch\",\n \"en-ck\",\n \"en-cm\",\n \"en-cn\",\n \"en-cx\",\n \"en-cy\",\n \"en-de\",\n \"en-dg\",\n \"en-dk\",\n \"en-dm\",\n \"en-ee\",\n \"en-eg\",\n \"en-er\",\n \"en-es\",\n \"en-fi\",\n \"en-fj\",\n \"en-fk\",\n \"en-fm\",\n \"en-fr\",\n \"en-gb\",\n \"en-gd\",\n \"en-gg\",\n \"en-gh\",\n \"en-gi\",\n \"en-gm\",\n \"en-gu\",\n \"en-gy\",\n \"en-hk\",\n \"en-ie\",\n \"en-il\",\n \"en-im\",\n \"en-in\",\n \"en-io\",\n \"en-je\",\n \"en-jm\",\n \"en-ke\",\n \"en-ki\",\n \"en-kn\",\n \"en-ky\",\n \"en-lc\",\n \"en-lr\",\n \"en-ls\",\n \"en-lu\",\n \"en-mg\",\n \"en-mh\",\n \"en-mo\",\n \"en-mp\",\n \"en-ms\",\n \"en-mt\",\n \"en-mu\",\n \"en-mv\",\n \"en-mw\",\n \"en-mx\",\n \"en-my\",\n \"en-na\",\n \"en-nf\",\n \"en-ng\",\n \"en-nl\",\n \"en-nr\",\n \"en-nu\",\n \"en-nz\",\n \"en-pg\",\n \"en-ph\",\n \"en-pk\",\n \"en-pn\",\n \"en-pr\",\n \"en-pw\",\n \"en-rw\",\n \"en-sb\",\n \"en-sc\",\n \"en-sd\",\n \"en-se\",\n \"en-sg\",\n \"en-sh\",\n \"en-si\",\n \"en-sl\",\n \"en-ss\",\n \"en-sx\",\n \"en-sz\",\n \"en-tc\",\n \"en-tk\",\n \"en-tn\",\n \"en-to\",\n \"en-tt\",\n \"en-tv\",\n \"en-tz\",\n \"en-ug\",\n \"en-um\",\n \"en-us\",\n \"en-vc\",\n \"en-vg\",\n \"en-vi\",\n \"en-vu\",\n \"en-ws\",\n \"en-za\",\n \"en-zm\",\n \"en-zw\",\n \"eo\",\n \"eo-001\",\n \"es\",\n \"es-419\",\n \"es-ar\",\n \"es-bo\",\n \"es-br\",\n \"es-bz\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-cu\",\n \"es-do\",\n \"es-ea\",\n \"es-ec\",\n \"es-es\",\n \"es-gq\",\n \"es-gt\",\n \"es-hn\",\n \"es-ic\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-pe\",\n \"es-ph\",\n \"es-pr\",\n \"es-py\",\n \"es-sv\",\n \"es-us\",\n \"es-uy\",\n \"es-ve\",\n \"et\",\n \"et-ee\",\n \"eu\",\n \"eu-es\",\n \"ewo\",\n \"ewo-cm\",\n \"fa\",\n \"fa-af\",\n \"fa-ir\",\n \"ff\",\n \"ff-bf\",\n \"ff-cm\",\n \"ff-gh\",\n \"ff-gm\",\n \"ff-gn\",\n \"ff-gw\",\n \"ff-lr\",\n \"ff-mr\",\n \"ff-ne\",\n \"ff-ng\",\n \"ff-sl\",\n \"ff-sn\",\n \"fi\",\n \"fil\",\n \"fil-ph\",\n \"fi-fi\",\n \"fo\",\n \"fo-dk\",\n \"fo-fo\",\n \"fr\",\n \"frr\",\n \"frr-de\",\n \"fr-be\",\n \"fr-bf\",\n \"fr-bi\",\n \"fr-bj\",\n \"fr-bl\",\n \"fr-ca\",\n \"fr-cd\",\n \"fr-cf\",\n \"fr-cg\",\n \"fr-ch\",\n \"fr-ci\",\n \"fr-cm\",\n \"fr-dj\",\n \"fr-dz\",\n \"fr-fr\",\n \"fr-ga\",\n \"fr-gf\",\n \"fr-gn\",\n \"fr-gp\",\n \"fr-gq\",\n \"fr-ht\",\n \"fr-km\",\n \"fr-lu\",\n \"fr-ma\",\n \"fr-mc\",\n \"fr-mf\",\n \"fr-mg\",\n \"fr-ml\",\n \"fr-mq\",\n \"fr-mr\",\n \"fr-mu\",\n \"fr-nc\",\n \"fr-ne\",\n \"fr-pf\",\n \"fr-pm\",\n \"fr-re\",\n \"fr-rw\",\n \"fr-sc\",\n \"fr-sn\",\n \"fr-sy\",\n \"fr-td\",\n \"fr-tg\",\n \"fr-tn\",\n \"fr-vu\",\n \"fr-wf\",\n \"fr-yt\",\n \"fur\",\n \"fur-it\",\n \"fy\",\n \"fy-nl\",\n \"ga\",\n \"ga-gb\",\n \"ga-ie\",\n \"gd\",\n \"gd-gb\",\n \"gl\",\n \"gl-es\",\n \"gsw\",\n \"gsw-ch\",\n \"gsw-fr\",\n \"gsw-li\",\n \"gu\",\n \"guz\",\n \"guz-ke\",\n \"gu-in\",\n \"gv\",\n \"gv-im\",\n \"ha\",\n \"haw\",\n \"haw-us\",\n \"ha-gh\",\n \"ha-ne\",\n \"ha-ng\",\n \"he\",\n \"he-il\",\n \"hi\",\n \"hi-in\",\n \"hr\",\n \"hr-ba\",\n \"hr-hr\",\n \"hsb\",\n \"hsb-de\",\n \"hu\",\n \"hu-hu\",\n \"hy\",\n \"hy-am\",\n \"ia\",\n \"ia-001\",\n \"id\",\n \"ig\",\n \"ig-ng\",\n \"ii\",\n \"ii-cn\",\n \"id-id\",\n \"is\",\n \"is-is\",\n \"it\",\n \"it-ch\",\n \"it-it\",\n \"it-sm\",\n \"it-va\",\n \"ja\",\n \"ja-jp\",\n \"jgo\",\n \"jgo-cm\",\n \"yi\",\n \"yi-001\",\n \"jmc\",\n \"jmc-tz\",\n \"jv\",\n \"jv-id\",\n \"ka\",\n \"kab\",\n \"kab-dz\",\n \"kam\",\n \"kam-ke\",\n \"ka-ge\",\n \"kde\",\n \"kde-tz\",\n \"kea\",\n \"kea-cv\",\n \"kgp\",\n \"kgp-br\",\n \"khq\",\n \"khq-ml\",\n \"ki\",\n \"ki-ke\",\n \"kk\",\n \"kkj\",\n \"kkj-cm\",\n \"kk-kz\",\n \"kl\",\n \"kln\",\n \"kln-ke\",\n \"kl-gl\",\n \"km\",\n \"km-kh\",\n \"kn\",\n \"kn-in\",\n \"ko\",\n \"kok\",\n \"kok-in\",\n \"ko-kp\",\n \"ko-kr\",\n \"ks\",\n \"ksb\",\n \"ksb-tz\",\n \"ksf\",\n \"ksf-cm\",\n \"ksh\",\n \"ksh-de\",\n \"ks-in\",\n \"ku\",\n \"ku-tr\",\n \"kw\",\n \"kw-gb\",\n \"ky\",\n \"ky-kg\",\n \"lag\",\n \"lag-tz\",\n \"lb\",\n \"lb-lu\",\n \"lg\",\n \"lg-ug\",\n \"lkt\",\n \"lkt-us\",\n \"ln\",\n \"ln-ao\",\n \"ln-cd\",\n \"ln-cf\",\n \"ln-cg\",\n \"lo\",\n \"lo-la\",\n \"lrc\",\n \"lrc-iq\",\n \"lrc-ir\",\n \"lt\",\n \"lt-lt\",\n \"lu\",\n \"luo\",\n \"luo-ke\",\n \"luy\",\n \"luy-ke\",\n \"lu-cd\",\n \"lv\",\n \"lv-lv\",\n \"mai\",\n \"mai-in\",\n \"mas\",\n \"mas-ke\",\n \"mas-tz\",\n \"mdf\",\n \"mdf-ru\",\n \"mer\",\n \"mer-ke\",\n \"mfe\",\n \"mfe-mu\",\n \"mg\",\n \"mgh\",\n \"mgh-mz\",\n \"mgo\",\n \"mgo-cm\",\n \"mg-mg\",\n \"mi\",\n \"mi-nz\",\n \"mk\",\n \"mk-mk\",\n \"ml\",\n \"ml-in\",\n \"mn\",\n \"mni\",\n \"mni-in\",\n \"mn-mn\",\n \"mr\",\n \"mr-in\",\n \"ms\",\n \"ms-bn\",\n \"ms-id\",\n \"ms-my\",\n \"ms-sg\",\n \"mt\",\n \"mt-mt\",\n \"mua\",\n \"mua-cm\",\n \"my\",\n \"my-mm\",\n \"mzn\",\n \"mzn-ir\",\n \"naq\",\n \"naq-na\",\n \"nb\",\n \"nb-no\",\n \"nb-sj\",\n \"nd\",\n \"nds\",\n \"nds-de\",\n \"nds-nl\",\n \"nd-zw\",\n \"ne\",\n \"ne-in\",\n \"ne-np\",\n \"nl\",\n \"nl-aw\",\n \"nl-be\",\n \"nl-bq\",\n \"nl-ch\",\n \"nl-cw\",\n \"nl-lu\",\n \"nl-nl\",\n \"nl-sr\",\n \"nl-sx\",\n \"nmg\",\n \"nmg-cm\",\n \"nn\",\n \"nnh\",\n \"nnh-cm\",\n \"nn-no\",\n \"no\",\n \"no-no\",\n \"nus\",\n \"nus-ss\",\n \"nyn\",\n \"nyn-ug\",\n \"oc\",\n \"oc-es\",\n \"oc-fr\",\n \"om\",\n \"om-et\",\n \"om-ke\",\n \"or\",\n \"or-in\",\n \"os\",\n \"os-ge\",\n \"os-ru\",\n \"pa\",\n \"pa-in\",\n \"pa-pk\",\n \"pcm\",\n \"pcm-ng\",\n \"pis\",\n \"pis-sb\",\n \"pl\",\n \"pl-pl\",\n \"prg\",\n \"prg-001\",\n \"ps\",\n \"ps-af\",\n \"ps-pk\",\n \"pt\",\n \"pt-ao\",\n \"pt-br\",\n \"pt-ch\",\n \"pt-cv\",\n \"pt-gq\",\n \"pt-gw\",\n \"pt-lu\",\n \"pt-mo\",\n \"pt-mz\",\n \"pt-pt\",\n \"pt-st\",\n \"pt-tl\",\n \"qu\",\n \"qu-bo\",\n \"qu-ec\",\n \"qu-pe\",\n \"raj\",\n \"raj-in\",\n \"rm\",\n \"rm-ch\",\n \"rn\",\n \"rn-bi\",\n \"ro\",\n \"rof\",\n \"rof-tz\",\n \"ro-md\",\n \"ro-ro\",\n \"ru\",\n \"ru-by\",\n \"ru-kg\",\n \"ru-kz\",\n \"ru-md\",\n \"ru-ru\",\n \"ru-ua\",\n \"rw\",\n \"rwk\",\n \"rwk-tz\",\n \"rw-rw\",\n \"sa\",\n \"sah\",\n \"sah-ru\",\n \"saq\",\n \"saq-ke\",\n \"sat\",\n \"sat-in\",\n \"sa-in\",\n \"sbp\",\n \"sbp-tz\",\n \"sc\",\n \"sc-it\",\n \"sd\",\n \"sd-in\",\n \"sd-pk\",\n \"se\",\n \"seh\",\n \"seh-mz\",\n \"ses\",\n \"ses-ml\",\n \"se-fi\",\n \"se-no\",\n \"se-se\",\n \"sg\",\n \"sg-cf\",\n \"shi\",\n \"shi-ma\",\n \"si\",\n \"si-lk\",\n \"sk\",\n \"sk-sk\",\n \"sl\",\n \"sl-si\",\n \"smn\",\n \"smn-fi\",\n \"sms\",\n \"sms-fi\",\n \"sn\",\n \"sn-zw\",\n \"so\",\n \"so-dj\",\n \"so-et\",\n \"so-ke\",\n \"so-so\",\n \"sq\",\n \"sq-al\",\n \"sq-mk\",\n \"sq-xk\",\n \"sr\",\n \"sr-ba\",\n \"sr-cs\",\n \"sr-me\",\n \"sr-rs\",\n \"sr-xk\",\n \"su\",\n \"su-id\",\n \"sv\",\n \"sv-ax\",\n \"sv-fi\",\n \"sv-se\",\n \"sw\",\n \"sw-cd\",\n \"sw-ke\",\n \"sw-tz\",\n \"sw-ug\",\n \"sy\",\n \"ta\",\n \"ta-in\",\n \"ta-lk\",\n \"ta-my\",\n \"ta-sg\",\n \"te\",\n \"teo\",\n \"teo-ke\",\n \"teo-ug\",\n \"te-in\",\n \"tg\",\n \"tg-tj\",\n \"th\",\n \"th-th\",\n \"ti\",\n \"ti-er\",\n \"ti-et\",\n \"tk\",\n \"tk-tm\",\n \"tl\",\n \"to\",\n \"tok\",\n \"tok-001\",\n \"to-to\",\n \"tr\",\n \"tr-cy\",\n \"tr-tr\",\n \"tt\",\n \"tt-ru\",\n \"twq\",\n \"twq-ne\",\n \"tzm\",\n \"tzm-ma\",\n \"ug\",\n \"ug-cn\",\n \"uk\",\n \"uk-ua\",\n \"ur\",\n \"ur-in\",\n \"ur-pk\",\n \"uz\",\n \"uz-af\",\n \"uz-uz\",\n \"vai\",\n \"vai-lr\",\n \"vi\",\n \"vi-vn\",\n \"vo\",\n \"vo-001\",\n \"vun\",\n \"vun-tz\",\n \"wae\",\n \"wae-ch\",\n \"wo\",\n \"wo-sn\",\n \"xh\",\n \"xh-za\",\n \"xog\",\n \"xog-ug\",\n \"yav\",\n \"yav-cm\",\n \"yo\",\n \"yo-bj\",\n \"yo-ng\",\n \"yrl\",\n \"yrl-br\",\n \"yrl-co\",\n \"yrl-ve\",\n \"yue\",\n \"yue-cn\",\n \"yue-hk\",\n \"zgh\",\n \"zgh-ma\",\n \"zh\",\n \"zh-cn\",\n \"zh-hans\",\n \"zh-hant\",\n \"zh-hk\",\n \"zh-mo\",\n \"zh-sg\",\n \"zh-tw\",\n \"zu\",\n \"zu-za\"\n ]\n },\n \"businessUnitId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"content\": {\n \"type\": \"object\",\n \"properties\": {\n \"smartFields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"An email field whose value is controlled by one or more smart rules.\"\n }\n },\n \"themeSettingsValues\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"flexAreas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"widgets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"plainTextVersion\": {\n \"type\": \"string\"\n },\n \"templatePath\": {\n \"type\": \"string\"\n },\n \"widgetContainers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"styleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"backgroundImage\": {\n \"type\": \"string\"\n },\n \"backgroundImageType\": {\n \"type\": \"string\"\n },\n \"bodyColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderWidth\": {\n \"type\": \"number\"\n },\n \"bodyBorderColorChoice\": {\n \"type\": \"string\"\n },\n \"primaryFont\": {\n \"type\": \"string\"\n },\n \"primaryFontColor\": {\n \"type\": \"string\"\n },\n \"primaryAccentColor\": {\n \"type\": \"string\"\n },\n \"primaryFontSize\": {\n \"type\": \"number\"\n },\n \"primaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"secondaryFont\": {\n \"type\": \"string\"\n },\n \"secondaryFontColor\": {\n \"type\": \"string\"\n },\n \"secondaryAccentColor\": {\n \"type\": \"string\"\n },\n \"secondaryFontSize\": {\n \"type\": \"number\"\n },\n \"secondaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"headingOneFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"headingTwoFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"linksFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"colorPickerFavorite1\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite2\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite3\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite4\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite5\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite6\": {\n \"type\": \"string\"\n },\n \"emailBodyPadding\": {\n \"type\": \"string\"\n },\n \"emailBodyWidth\": {\n \"type\": \"string\"\n },\n \"buttonStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"cornerRadius\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"fontStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"dividerStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"height\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"lineType\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"description\": \"Data structure representing the content of the email.\"\n },\n \"webversion\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"redirectToPageId\": {\n \"type\": \"string\"\n },\n \"isPageRedirected\": {\n \"type\": \"boolean\"\n },\n \"redirectToUrl\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"pageExpiryEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Determines if the email is archived or not.\"\n },\n \"subscriptionDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"officeLocationId\": {\n \"type\": \"string\",\n \"description\": \"ID of the selected office location.\"\n },\n \"subscriptionName\": {\n \"type\": \"string\"\n },\n \"preferencesGroupId\": {\n \"type\": \"string\"\n },\n \"subscriptionId\": {\n \"type\": \"string\",\n \"description\": \"ID of the subscription.\"\n }\n },\n \"description\": \"Data structure representing the subscription fields of the email.\"\n },\n \"activeDomain\": {\n \"type\": \"string\",\n \"description\": \"The active domain of the email.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the email, as displayed on the email dashboard.\"\n },\n \"campaign\": {\n \"type\": \"string\",\n \"description\": \"The ID of the campaign this email is associated to.\"\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"customReplyTo\": {\n \"type\": \"string\",\n \"description\": \"The reply to recipients will see.\"\n },\n \"fromName\": {\n \"type\": \"string\",\n \"description\": \"The name recipients will see.\"\n },\n \"replyTo\": {\n \"type\": \"string\",\n \"description\": \"The from address and reply to email address (if no customReplyTo defined) recipients will see.\"\n }\n },\n \"description\": \"Data structure representing the from fields on the email.\"\n },\n \"jitterSendTime\": {\n \"type\": \"boolean\"\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"The email state.\",\n \"enum\": [\n \"AUTOMATED\",\n \"AUTOMATED_DRAFT\",\n \"AUTOMATED_SENDING\",\n \"AUTOMATED_FOR_FORM\",\n \"AUTOMATED_FOR_FORM_BUFFER\",\n \"AUTOMATED_FOR_FORM_DRAFT\",\n \"AUTOMATED_FOR_FORM_LEGACY\",\n \"BLOG_EMAIL_DRAFT\",\n \"BLOG_EMAIL_PUBLISHED\",\n \"DRAFT\",\n \"DRAFT_AB\",\n \"DRAFT_AB_VARIANT\",\n \"ERROR\",\n \"LOSER_AB_VARIANT\",\n \"PAGE_STUB\",\n \"PRE_PROCESSING\",\n \"PROCESSING\",\n \"PUBLISHED\",\n \"PUBLISHED_AB\",\n \"PUBLISHED_AB_VARIANT\",\n \"PUBLISHED_OR_SCHEDULED\",\n \"RSS_TO_EMAIL_DRAFT\",\n \"RSS_TO_EMAIL_PUBLISHED\",\n \"SCHEDULED\",\n \"SCHEDULED_AB\",\n \"SCHEDULED_OR_PUBLISHED\",\n \"AUTOMATED_AB\",\n \"AUTOMATED_AB_VARIANT\",\n \"AUTOMATED_DRAFT_AB\",\n \"AUTOMATED_DRAFT_ABVARIANT\",\n \"AUTOMATED_LOSER_ABVARIANT\",\n \"AGENT_GENERATED\"\n ]\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"contactIlsLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"limitSendFrequency\": {\n \"type\": \"boolean\"\n },\n \"suppressGraymail\": {\n \"type\": \"boolean\"\n },\n \"contactIds\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"contactLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n }\n },\n \"description\": \"Data structure representing the to fields of the email.\"\n },\n \"subcategory\": {\n \"type\": \"string\",\n \"description\": \"The email subcategory.\",\n \"enum\": [\n \"ab_master\",\n \"ab_variant\",\n \"ab_loser_variant\",\n \"page_stub\",\n \"landing_page\",\n \"site_page\",\n \"legacy_page\",\n \"ab_master_site_page\",\n \"ab_variant_site_page\",\n \"ab_loser_variant_site_page\",\n \"performable_landing_page\",\n \"performable_landing_page_cutover\",\n \"staged_page\",\n \"automated\",\n \"automated_for_deal\",\n \"automated_for_form\",\n \"automated_for_form_legacy\",\n \"automated_for_form_buffer\",\n \"automated_for_form_draft\",\n \"rss_to_email\",\n \"rss_to_email_child\",\n \"blog_email\",\n \"blog_email_child\",\n \"optin_email\",\n \"optin_followup_email\",\n \"batch\",\n \"resubscribe_email\",\n \"unsubscribe_confirmation_email\",\n \"resubscribe_confirmation_email\",\n \"single_send_api\",\n \"marketing_single_send_api\",\n \"smtp_token\",\n \"localtime\",\n \"automated_for_ticket\",\n \"automated_for_leadflow\",\n \"automated_for_feedback_ces\",\n \"automated_for_feedback_nps\",\n \"automated_for_feedback_custom\",\n \"membership_registration\",\n \"membership_password_saved\",\n \"membership_password_reset\",\n \"membership_otp_login\",\n \"membership_passwordless_auth\",\n \"membership_email_verification\",\n \"membership_registration_follow_up\",\n \"membership_verification\",\n \"membership_follow_up\",\n \"ticket_closed_kickback_email\",\n \"ticket_opened_kickback_email\",\n \"automated_for_custom_survey\",\n \"discardable_stub\",\n \"normal_blog_post\",\n \"legacy_blog_post\",\n \"imported_blog_post\",\n \"automated_ab_master\",\n \"automated_ab_variant\",\n \"web_interactive\",\n \"portal_content\",\n \"page_instance_layout\",\n \"kb_article_instance_layout\",\n \"kb_listing\",\n \"kb_search_results\",\n \"kb_support_form\",\n \"kb_404_page\",\n \"case_study\",\n \"case_study_listing\",\n \"case_study_instance_layout\",\n \"scp_static_page\",\n \"scp_instance_layout_page\",\n \"podcast_instance_layout\",\n \"podcast_listing\",\n \"blog_article_instance_layout\",\n \"blog_article_listing\",\n \"blog_author_detail\",\n \"UNKNOWN\"\n ]\n },\n \"sendOnPublish\": {\n \"type\": \"boolean\",\n \"description\": \"Determines whether the email will be sent immediately on publish.\"\n }\n },\n \"description\": \"Properties of a marketing email you can update via the API.\",\n \"example\": {\n \"activeDomain\": \"test.hs-sites.com\",\n \"archived\": false,\n \"campaign\": \"1b7f51a6-33c1-44d6-ba28-fe81f655dced\",\n \"content\": {\n \"flexAreas\": {\n \"main\": {\n \"boxed\": false,\n \"isSingleColumnFullWidth\": false,\n \"sections\": [\n {\n \"columns\": [\n {\n \"id\": \"column_1606761806181_0\",\n \"widgets\": [\n \"module_160676180617911\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section_1606761806181\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-0-1\",\n \"widgets\": [\n \"module-0-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-0\",\n \"style\": {\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"40px\",\n \"paddingTop\": \"40px\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-1-1\",\n \"widgets\": [\n \"module-1-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-1\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"0px\",\n \"paddingTop\": \"0px\"\n }\n }\n ]\n }\n },\n \"plainTextVersion\": \"This is custom! View in browser ({{view_as_page_url}})\\n\\nHello {{ contact.firstname }},\\n\\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.\\n\\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\\n\\nLink text\\n\\nNow it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\\n\\nAll the best,\\n\\nYour full name\\n\\nYour job title\\n\\nOther contact information\\n\\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\\n\\nUnsubscribe ({{unsubscribe_link_all}})\\n\\nManage preferences ({{unsubscribe_link}})\",\n \"styleSettings\": {},\n \"widgets\": {\n \"module-0-1-1\": {\n \"body\": {\n \"css_class\": \"dnd-module\",\n \"html\": \"

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

\",\n \"i18nKey\": \"richText.plainText\",\n \"path\": \"@hubspot/rich_text\",\n \"schema_version\": 2\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-0-1-1\",\n \"module_id\": 1155639,\n \"name\": \"module-0-1-1\",\n \"order\": 2,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module-1-1-1\": {\n \"body\": {\n \"align\": \"center\",\n \"css_class\": \"dnd-module\",\n \"font\": {\n \"color\": \"#23496d\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n }\n },\n \"link_font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Helvetica,Arial,sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"path\": \"@hubspot/email_footer\",\n \"schema_version\": 2,\n \"unsubscribe_link_type\": \"both\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-1-1-1\",\n \"module_id\": 2869621,\n \"name\": \"module-1-1-1\",\n \"order\": 3,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module_160676180617911\": {\n \"body\": {\n \"font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"hs_enable_module_padding\": false,\n \"hs_wrapper_css\": {}\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module_160676180617911\",\n \"module_id\": 2794854,\n \"name\": \"module_160676180617911\",\n \"styles\": {},\n \"type\": \"module\"\n },\n \"preview_text\": {\n \"body\": {\n \"value\": \"\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"preview_text\",\n \"label\": \"Preview Text This will be used as the preview text that displays in some email clients\",\n \"name\": \"preview_text\",\n \"order\": 0,\n \"styles\": {},\n \"type\": \"text\"\n }\n }\n },\n \"createdAt\": \"2020-11-30T18:43:17.136Z\",\n \"createdById\": 3739732,\n \"from\": {\n \"fromName\": \"Bruce Wayne\",\n \"replyTo\": \"test@hubspot.com\"\n },\n \"name\": \"My subject\",\n \"publishDate\": \"2023-11-30T18:44:20.387Z\",\n \"sendOnPublish\": true,\n \"state\": \"DRAFT\",\n \"subcategory\": \"batch\",\n \"subject\": \"My subject\",\n \"subscriptionDetails\": {\n \"officeLocationId\": \"5449392956\"\n },\n \"to\": {\n \"contactIds\": {},\n \"contactIlsLists\": {\n \"exclude\": [\n 1\n ],\n \"include\": [\n 5\n ]\n },\n \"suppressGraymail\": true\n },\n \"webversion\": {\n \"expiresAt\": \"2020-11-30T18:44:20.387Z\",\n \"metaDescription\": \"\",\n \"redirectToPageId\": 0,\n \"redirectToUrl\": \"http://www.example.org\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/emails/{emailId}/revisions", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_email_revisions", + "description": { + "tagline": "Retrieve all versions of a marketing email.", + "detailed": "Use this tool to get a comprehensive list of all versions of a specified marketing email, each containing the full state of that version." + }, + "return_annotation": "List of all versions of a specific marketing email.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_key" + ], + "description": "The unique identifier of the marketing email to retrieve revisions for.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/emails/{emailId}/revisions", + "tags": [ + "Marketing Emails" + ], + "summary": "Get revisions of a marketing email", + "description": "Get a list of all versions of a marketing email, with each entry including the full state of that particular version. The current revision has the ID -1.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/{emailId}/unpublish", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "unpublish_marketing_email", + "description": { + "tagline": "Unpublish a HubSpot marketing email.", + "detailed": "This tool is used to unpublish a specific email in HubSpot Marketing. It should be called when you want to deactivate or withdraw an email from being publicly available." + }, + "return_annotation": "Confirmation of email unpublication.", + "arguments": [ + { + "name": "email_identifier", + "alternative_names": [ + "email_unique_id", + "email_campaign_id" + ], + "description": "The unique identifier of the email you wish to unpublish in HubSpot Marketing.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/{emailId}/unpublish", + "tags": [ + "Public_VNext_Emails" + ], + "summary": "", + "description": "", + "requires_security": true, + "oauth_scopes": [ + "marketing-email", + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/emails/{emailId}/revisions/{revisionId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_email_revision", + "description": { + "tagline": "Retrieve a specific revision of a marketing email.", + "detailed": "Use this tool to get details about a specific revision of a marketing email by providing the email and revision IDs." + }, + "return_annotation": "Details of a specific marketing email revision.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_unique_id" + ], + "description": "The unique identifier for the marketing email. This ID is required to specify which email's revision details to retrieve.", + "endpoint_argument_name": "emailId" + }, + { + "name": "email_revision_id", + "alternative_names": [ + "revision_identifier", + "version_id" + ], + "description": "The unique ID of the specific email revision to retrieve. Provide the revisionId for accessing the exact version.", + "endpoint_argument_name": "revisionId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/emails/{emailId}/revisions/{revisionId}", + "tags": [ + "Marketing Emails" + ], + "summary": "Get a revision of a marketing email.", + "description": "Get a specific revision of a marketing email.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + }, + { + "name": "revisionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/clone", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "clone_hubspot_email", + "description": { + "tagline": "Clone an existing HubSpot marketing email.", + "detailed": "Use this tool to create a copy of an existing email in HubSpot's marketing platform. Ideal for reusing email templates and maintaining consistency in marketing campaigns." + }, + "return_annotation": "Details of the newly cloned email.", + "arguments": [ + { + "name": "original_email_id", + "alternative_names": [ + "email_id_to_clone", + "source_email_id" + ], + "description": "The unique identifier of the email you wish to clone in HubSpot.", + "endpoint_argument_name": "id" + }, + { + "name": "cloned_email_name", + "alternative_names": [ + "email_clone_title", + "email_copy_name" + ], + "description": "The new name for the cloned email. This should be a descriptive string to identify the copy.", + "endpoint_argument_name": "cloneName" + }, + { + "name": "email_language", + "alternative_names": [ + "language_code", + "email_locale" + ], + "description": "Specify the language for the cloned email, e.g., 'en' for English, 'fr' for French.", + "endpoint_argument_name": "language" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/clone", + "tags": [ + "Public_VNext_Emails" + ], + "summary": "Clone an email", + "description": "Clone an existing email", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "id", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": true + }, + { + "name": "cloneName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "language", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": false, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"cloneName\": {\n \"type\": \"string\"\n },\n \"language\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "get-/marketing/v3/emails/", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "hubspot_marketing_email_filter", + "description": { + "tagline": "Retrieve and filter HubSpot marketing emails.", + "detailed": "Use this tool to retrieve and filter marketing emails from HubSpot. It allows you to apply various filters to find specific sets of emails based on your criteria." + }, + "return_annotation": "Filtered list of marketing emails.", + "arguments": [] + }, + "method": "GET", + "path": "/marketing/v3/emails/", + "tags": [ + "Marketing Emails" + ], + "summary": "Get all marketing emails for a HubSpot account.", + "description": "The results can be filtered, allowing you to find a specific set of emails. See the table below for a full list of filtering options.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_marketing_email", + "description": { + "tagline": "Create a new marketing email in HubSpot.", + "detailed": "Use this tool to create a new marketing email through HubSpot's marketing platform, allowing for effective email campaigns." + }, + "return_annotation": "Confirmation of email creation with details.", + "arguments": [ + { + "name": "marketing_email_details", + "alternative_names": [ + "email_configuration", + "email_content_details" + ], + "description": "JSON object containing all the details for the marketing email creation, including subject, content, scheduling, and testing options.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/", + "tags": [ + "Marketing Emails" + ], + "summary": "Create a new marketing email.", + "description": "Use this endpoint to create a new marketing email.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "feedbackSurveyId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the feedback survey linked to the email." + }, + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Properties of a marketing email you can set when creating a marketing email.", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "rssData": { + "type": "object", + "description": "RSS related data if it is a blog or rss email.", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "type": "object", + "description": "AB testing related data. This property is only returned for AB type emails.", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + } + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object", + "description": "Data structure representing the content of the email.", + "properties": { + "smartFields": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + } + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "type": "object", + "description": "Data structure representing the subscription fields of the email.", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + } + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "type": "object", + "description": "Data structure representing the from fields on the email.", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "type": "object", + "description": "Data structure representing the to fields of the email.", + "properties": { + "contactIlsLists": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + }, + "contactLists": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + } + } + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "required": [ + "name" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"feedbackSurveyId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the feedback survey linked to the email.\"\n },\n \"rssData\": {\n \"type\": \"object\",\n \"properties\": {\n \"blogImageMaxWidth\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"blogEmailType\": {\n \"type\": \"string\"\n },\n \"hubspotBlogId\": {\n \"type\": \"string\"\n },\n \"rssEntryTemplate\": {\n \"type\": \"string\"\n },\n \"timing\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"useHeadlineAsSubject\": {\n \"type\": \"boolean\"\n },\n \"blogLayout\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"RSS related data if it is a blog or rss email.\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"The subject of the email.\"\n },\n \"testing\": {\n \"type\": \"object\",\n \"properties\": {\n \"isAbVariation\": {\n \"type\": \"boolean\"\n },\n \"abSamplingDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if the results are inconclusive after the test period, master or variant.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abSampleSizeDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if there are too few recipients to conduct an AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abStatus\": {\n \"type\": \"string\",\n \"description\": \"Status of the AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abTestPercentage\": {\n \"type\": \"integer\",\n \"description\": \"The size of your test group.\",\n \"format\": \"int32\"\n },\n \"hoursToWait\": {\n \"type\": \"integer\",\n \"description\": \"Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.\",\n \"format\": \"int32\"\n },\n \"testId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the AB test.\"\n },\n \"abSuccessMetric\": {\n \"type\": \"string\",\n \"description\": \"Metric to determine the version that will be sent to the remaining contacts.\",\n \"enum\": [\n \"CLICKS_BY_OPENS\",\n \"CLICKS_BY_DELIVERED\",\n \"OPENS_BY_DELIVERED\"\n ]\n }\n },\n \"description\": \"AB testing related data. This property is only returned for AB type emails.\"\n },\n \"publishDate\": {\n \"type\": \"string\",\n \"description\": \"The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.\",\n \"format\": \"date-time\"\n },\n \"language\": {\n \"type\": \"string\",\n \"enum\": [\n \"af\",\n \"af-na\",\n \"af-za\",\n \"agq\",\n \"agq-cm\",\n \"ak\",\n \"ak-gh\",\n \"am\",\n \"am-et\",\n \"ann\",\n \"ann-ng\",\n \"ar\",\n \"ar-001\",\n \"ar-ae\",\n \"ar-bh\",\n \"ar-dj\",\n \"ar-dz\",\n \"ar-eg\",\n \"ar-eh\",\n \"ar-er\",\n \"ar-il\",\n \"ar-iq\",\n \"ar-jo\",\n \"ar-km\",\n \"ar-kw\",\n \"ar-lb\",\n \"ar-ly\",\n \"ar-ma\",\n \"ar-mr\",\n \"ar-om\",\n \"ar-ps\",\n \"ar-qa\",\n \"ar-sa\",\n \"ar-sd\",\n \"ar-so\",\n \"ar-ss\",\n \"ar-sy\",\n \"ar-td\",\n \"ar-tn\",\n \"ar-ye\",\n \"as\",\n \"asa\",\n \"asa-tz\",\n \"ast\",\n \"ast-es\",\n \"as-in\",\n \"az\",\n \"az-az\",\n \"bas\",\n \"bas-cm\",\n \"be\",\n \"bem\",\n \"bem-zm\",\n \"bez\",\n \"bez-tz\",\n \"be-by\",\n \"bg\",\n \"bgc\",\n \"bgc-in\",\n \"bg-bg\",\n \"bho\",\n \"bho-in\",\n \"bm\",\n \"bm-ml\",\n \"bn\",\n \"bn-bd\",\n \"bn-in\",\n \"bo\",\n \"bo-cn\",\n \"bo-in\",\n \"br\",\n \"brx\",\n \"brx-in\",\n \"br-fr\",\n \"bs\",\n \"bs-ba\",\n \"ca\",\n \"ca-ad\",\n \"ca-es\",\n \"ca-fr\",\n \"ca-it\",\n \"ccp\",\n \"ccp-bd\",\n \"ccp-in\",\n \"ce\",\n \"ceb\",\n \"ceb-ph\",\n \"ce-ru\",\n \"cgg\",\n \"cgg-ug\",\n \"chr\",\n \"chr-us\",\n \"ckb\",\n \"ckb-iq\",\n \"ckb-ir\",\n \"cs\",\n \"cs-cz\",\n \"cu\",\n \"cu-ru\",\n \"cv\",\n \"cv-ru\",\n \"cy\",\n \"cy-gb\",\n \"da\",\n \"dav\",\n \"dav-ke\",\n \"da-dk\",\n \"da-gl\",\n \"de\",\n \"de-at\",\n \"de-be\",\n \"de-ch\",\n \"de-de\",\n \"de-gr\",\n \"de-it\",\n \"de-li\",\n \"de-lu\",\n \"dje\",\n \"dje-ne\",\n \"doi\",\n \"doi-in\",\n \"dsb\",\n \"dsb-de\",\n \"dua\",\n \"dua-cm\",\n \"dyo\",\n \"dyo-sn\",\n \"dz\",\n \"dz-bt\",\n \"ebu\",\n \"ebu-ke\",\n \"ee\",\n \"ee-gh\",\n \"ee-tg\",\n \"el\",\n \"el-cy\",\n \"el-gr\",\n \"en\",\n \"en-001\",\n \"en-150\",\n \"en-ae\",\n \"en-ag\",\n \"en-ai\",\n \"en-as\",\n \"en-at\",\n \"en-au\",\n \"en-bb\",\n \"en-be\",\n \"en-bi\",\n \"en-bm\",\n \"en-bs\",\n \"en-bw\",\n \"en-bz\",\n \"en-ca\",\n \"en-cc\",\n \"en-ch\",\n \"en-ck\",\n \"en-cm\",\n \"en-cn\",\n \"en-cx\",\n \"en-cy\",\n \"en-de\",\n \"en-dg\",\n \"en-dk\",\n \"en-dm\",\n \"en-ee\",\n \"en-eg\",\n \"en-er\",\n \"en-es\",\n \"en-fi\",\n \"en-fj\",\n \"en-fk\",\n \"en-fm\",\n \"en-fr\",\n \"en-gb\",\n \"en-gd\",\n \"en-gg\",\n \"en-gh\",\n \"en-gi\",\n \"en-gm\",\n \"en-gu\",\n \"en-gy\",\n \"en-hk\",\n \"en-ie\",\n \"en-il\",\n \"en-im\",\n \"en-in\",\n \"en-io\",\n \"en-je\",\n \"en-jm\",\n \"en-ke\",\n \"en-ki\",\n \"en-kn\",\n \"en-ky\",\n \"en-lc\",\n \"en-lr\",\n \"en-ls\",\n \"en-lu\",\n \"en-mg\",\n \"en-mh\",\n \"en-mo\",\n \"en-mp\",\n \"en-ms\",\n \"en-mt\",\n \"en-mu\",\n \"en-mv\",\n \"en-mw\",\n \"en-mx\",\n \"en-my\",\n \"en-na\",\n \"en-nf\",\n \"en-ng\",\n \"en-nl\",\n \"en-nr\",\n \"en-nu\",\n \"en-nz\",\n \"en-pg\",\n \"en-ph\",\n \"en-pk\",\n \"en-pn\",\n \"en-pr\",\n \"en-pw\",\n \"en-rw\",\n \"en-sb\",\n \"en-sc\",\n \"en-sd\",\n \"en-se\",\n \"en-sg\",\n \"en-sh\",\n \"en-si\",\n \"en-sl\",\n \"en-ss\",\n \"en-sx\",\n \"en-sz\",\n \"en-tc\",\n \"en-tk\",\n \"en-tn\",\n \"en-to\",\n \"en-tt\",\n \"en-tv\",\n \"en-tz\",\n \"en-ug\",\n \"en-um\",\n \"en-us\",\n \"en-vc\",\n \"en-vg\",\n \"en-vi\",\n \"en-vu\",\n \"en-ws\",\n \"en-za\",\n \"en-zm\",\n \"en-zw\",\n \"eo\",\n \"eo-001\",\n \"es\",\n \"es-419\",\n \"es-ar\",\n \"es-bo\",\n \"es-br\",\n \"es-bz\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-cu\",\n \"es-do\",\n \"es-ea\",\n \"es-ec\",\n \"es-es\",\n \"es-gq\",\n \"es-gt\",\n \"es-hn\",\n \"es-ic\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-pe\",\n \"es-ph\",\n \"es-pr\",\n \"es-py\",\n \"es-sv\",\n \"es-us\",\n \"es-uy\",\n \"es-ve\",\n \"et\",\n \"et-ee\",\n \"eu\",\n \"eu-es\",\n \"ewo\",\n \"ewo-cm\",\n \"fa\",\n \"fa-af\",\n \"fa-ir\",\n \"ff\",\n \"ff-bf\",\n \"ff-cm\",\n \"ff-gh\",\n \"ff-gm\",\n \"ff-gn\",\n \"ff-gw\",\n \"ff-lr\",\n \"ff-mr\",\n \"ff-ne\",\n \"ff-ng\",\n \"ff-sl\",\n \"ff-sn\",\n \"fi\",\n \"fil\",\n \"fil-ph\",\n \"fi-fi\",\n \"fo\",\n \"fo-dk\",\n \"fo-fo\",\n \"fr\",\n \"frr\",\n \"frr-de\",\n \"fr-be\",\n \"fr-bf\",\n \"fr-bi\",\n \"fr-bj\",\n \"fr-bl\",\n \"fr-ca\",\n \"fr-cd\",\n \"fr-cf\",\n \"fr-cg\",\n \"fr-ch\",\n \"fr-ci\",\n \"fr-cm\",\n \"fr-dj\",\n \"fr-dz\",\n \"fr-fr\",\n \"fr-ga\",\n \"fr-gf\",\n \"fr-gn\",\n \"fr-gp\",\n \"fr-gq\",\n \"fr-ht\",\n \"fr-km\",\n \"fr-lu\",\n \"fr-ma\",\n \"fr-mc\",\n \"fr-mf\",\n \"fr-mg\",\n \"fr-ml\",\n \"fr-mq\",\n \"fr-mr\",\n \"fr-mu\",\n \"fr-nc\",\n \"fr-ne\",\n \"fr-pf\",\n \"fr-pm\",\n \"fr-re\",\n \"fr-rw\",\n \"fr-sc\",\n \"fr-sn\",\n \"fr-sy\",\n \"fr-td\",\n \"fr-tg\",\n \"fr-tn\",\n \"fr-vu\",\n \"fr-wf\",\n \"fr-yt\",\n \"fur\",\n \"fur-it\",\n \"fy\",\n \"fy-nl\",\n \"ga\",\n \"ga-gb\",\n \"ga-ie\",\n \"gd\",\n \"gd-gb\",\n \"gl\",\n \"gl-es\",\n \"gsw\",\n \"gsw-ch\",\n \"gsw-fr\",\n \"gsw-li\",\n \"gu\",\n \"guz\",\n \"guz-ke\",\n \"gu-in\",\n \"gv\",\n \"gv-im\",\n \"ha\",\n \"haw\",\n \"haw-us\",\n \"ha-gh\",\n \"ha-ne\",\n \"ha-ng\",\n \"he\",\n \"he-il\",\n \"hi\",\n \"hi-in\",\n \"hr\",\n \"hr-ba\",\n \"hr-hr\",\n \"hsb\",\n \"hsb-de\",\n \"hu\",\n \"hu-hu\",\n \"hy\",\n \"hy-am\",\n \"ia\",\n \"ia-001\",\n \"id\",\n \"ig\",\n \"ig-ng\",\n \"ii\",\n \"ii-cn\",\n \"id-id\",\n \"is\",\n \"is-is\",\n \"it\",\n \"it-ch\",\n \"it-it\",\n \"it-sm\",\n \"it-va\",\n \"ja\",\n \"ja-jp\",\n \"jgo\",\n \"jgo-cm\",\n \"yi\",\n \"yi-001\",\n \"jmc\",\n \"jmc-tz\",\n \"jv\",\n \"jv-id\",\n \"ka\",\n \"kab\",\n \"kab-dz\",\n \"kam\",\n \"kam-ke\",\n \"ka-ge\",\n \"kde\",\n \"kde-tz\",\n \"kea\",\n \"kea-cv\",\n \"kgp\",\n \"kgp-br\",\n \"khq\",\n \"khq-ml\",\n \"ki\",\n \"ki-ke\",\n \"kk\",\n \"kkj\",\n \"kkj-cm\",\n \"kk-kz\",\n \"kl\",\n \"kln\",\n \"kln-ke\",\n \"kl-gl\",\n \"km\",\n \"km-kh\",\n \"kn\",\n \"kn-in\",\n \"ko\",\n \"kok\",\n \"kok-in\",\n \"ko-kp\",\n \"ko-kr\",\n \"ks\",\n \"ksb\",\n \"ksb-tz\",\n \"ksf\",\n \"ksf-cm\",\n \"ksh\",\n \"ksh-de\",\n \"ks-in\",\n \"ku\",\n \"ku-tr\",\n \"kw\",\n \"kw-gb\",\n \"ky\",\n \"ky-kg\",\n \"lag\",\n \"lag-tz\",\n \"lb\",\n \"lb-lu\",\n \"lg\",\n \"lg-ug\",\n \"lkt\",\n \"lkt-us\",\n \"ln\",\n \"ln-ao\",\n \"ln-cd\",\n \"ln-cf\",\n \"ln-cg\",\n \"lo\",\n \"lo-la\",\n \"lrc\",\n \"lrc-iq\",\n \"lrc-ir\",\n \"lt\",\n \"lt-lt\",\n \"lu\",\n \"luo\",\n \"luo-ke\",\n \"luy\",\n \"luy-ke\",\n \"lu-cd\",\n \"lv\",\n \"lv-lv\",\n \"mai\",\n \"mai-in\",\n \"mas\",\n \"mas-ke\",\n \"mas-tz\",\n \"mdf\",\n \"mdf-ru\",\n \"mer\",\n \"mer-ke\",\n \"mfe\",\n \"mfe-mu\",\n \"mg\",\n \"mgh\",\n \"mgh-mz\",\n \"mgo\",\n \"mgo-cm\",\n \"mg-mg\",\n \"mi\",\n \"mi-nz\",\n \"mk\",\n \"mk-mk\",\n \"ml\",\n \"ml-in\",\n \"mn\",\n \"mni\",\n \"mni-in\",\n \"mn-mn\",\n \"mr\",\n \"mr-in\",\n \"ms\",\n \"ms-bn\",\n \"ms-id\",\n \"ms-my\",\n \"ms-sg\",\n \"mt\",\n \"mt-mt\",\n \"mua\",\n \"mua-cm\",\n \"my\",\n \"my-mm\",\n \"mzn\",\n \"mzn-ir\",\n \"naq\",\n \"naq-na\",\n \"nb\",\n \"nb-no\",\n \"nb-sj\",\n \"nd\",\n \"nds\",\n \"nds-de\",\n \"nds-nl\",\n \"nd-zw\",\n \"ne\",\n \"ne-in\",\n \"ne-np\",\n \"nl\",\n \"nl-aw\",\n \"nl-be\",\n \"nl-bq\",\n \"nl-ch\",\n \"nl-cw\",\n \"nl-lu\",\n \"nl-nl\",\n \"nl-sr\",\n \"nl-sx\",\n \"nmg\",\n \"nmg-cm\",\n \"nn\",\n \"nnh\",\n \"nnh-cm\",\n \"nn-no\",\n \"no\",\n \"no-no\",\n \"nus\",\n \"nus-ss\",\n \"nyn\",\n \"nyn-ug\",\n \"oc\",\n \"oc-es\",\n \"oc-fr\",\n \"om\",\n \"om-et\",\n \"om-ke\",\n \"or\",\n \"or-in\",\n \"os\",\n \"os-ge\",\n \"os-ru\",\n \"pa\",\n \"pa-in\",\n \"pa-pk\",\n \"pcm\",\n \"pcm-ng\",\n \"pis\",\n \"pis-sb\",\n \"pl\",\n \"pl-pl\",\n \"prg\",\n \"prg-001\",\n \"ps\",\n \"ps-af\",\n \"ps-pk\",\n \"pt\",\n \"pt-ao\",\n \"pt-br\",\n \"pt-ch\",\n \"pt-cv\",\n \"pt-gq\",\n \"pt-gw\",\n \"pt-lu\",\n \"pt-mo\",\n \"pt-mz\",\n \"pt-pt\",\n \"pt-st\",\n \"pt-tl\",\n \"qu\",\n \"qu-bo\",\n \"qu-ec\",\n \"qu-pe\",\n \"raj\",\n \"raj-in\",\n \"rm\",\n \"rm-ch\",\n \"rn\",\n \"rn-bi\",\n \"ro\",\n \"rof\",\n \"rof-tz\",\n \"ro-md\",\n \"ro-ro\",\n \"ru\",\n \"ru-by\",\n \"ru-kg\",\n \"ru-kz\",\n \"ru-md\",\n \"ru-ru\",\n \"ru-ua\",\n \"rw\",\n \"rwk\",\n \"rwk-tz\",\n \"rw-rw\",\n \"sa\",\n \"sah\",\n \"sah-ru\",\n \"saq\",\n \"saq-ke\",\n \"sat\",\n \"sat-in\",\n \"sa-in\",\n \"sbp\",\n \"sbp-tz\",\n \"sc\",\n \"sc-it\",\n \"sd\",\n \"sd-in\",\n \"sd-pk\",\n \"se\",\n \"seh\",\n \"seh-mz\",\n \"ses\",\n \"ses-ml\",\n \"se-fi\",\n \"se-no\",\n \"se-se\",\n \"sg\",\n \"sg-cf\",\n \"shi\",\n \"shi-ma\",\n \"si\",\n \"si-lk\",\n \"sk\",\n \"sk-sk\",\n \"sl\",\n \"sl-si\",\n \"smn\",\n \"smn-fi\",\n \"sms\",\n \"sms-fi\",\n \"sn\",\n \"sn-zw\",\n \"so\",\n \"so-dj\",\n \"so-et\",\n \"so-ke\",\n \"so-so\",\n \"sq\",\n \"sq-al\",\n \"sq-mk\",\n \"sq-xk\",\n \"sr\",\n \"sr-ba\",\n \"sr-cs\",\n \"sr-me\",\n \"sr-rs\",\n \"sr-xk\",\n \"su\",\n \"su-id\",\n \"sv\",\n \"sv-ax\",\n \"sv-fi\",\n \"sv-se\",\n \"sw\",\n \"sw-cd\",\n \"sw-ke\",\n \"sw-tz\",\n \"sw-ug\",\n \"sy\",\n \"ta\",\n \"ta-in\",\n \"ta-lk\",\n \"ta-my\",\n \"ta-sg\",\n \"te\",\n \"teo\",\n \"teo-ke\",\n \"teo-ug\",\n \"te-in\",\n \"tg\",\n \"tg-tj\",\n \"th\",\n \"th-th\",\n \"ti\",\n \"ti-er\",\n \"ti-et\",\n \"tk\",\n \"tk-tm\",\n \"tl\",\n \"to\",\n \"tok\",\n \"tok-001\",\n \"to-to\",\n \"tr\",\n \"tr-cy\",\n \"tr-tr\",\n \"tt\",\n \"tt-ru\",\n \"twq\",\n \"twq-ne\",\n \"tzm\",\n \"tzm-ma\",\n \"ug\",\n \"ug-cn\",\n \"uk\",\n \"uk-ua\",\n \"ur\",\n \"ur-in\",\n \"ur-pk\",\n \"uz\",\n \"uz-af\",\n \"uz-uz\",\n \"vai\",\n \"vai-lr\",\n \"vi\",\n \"vi-vn\",\n \"vo\",\n \"vo-001\",\n \"vun\",\n \"vun-tz\",\n \"wae\",\n \"wae-ch\",\n \"wo\",\n \"wo-sn\",\n \"xh\",\n \"xh-za\",\n \"xog\",\n \"xog-ug\",\n \"yav\",\n \"yav-cm\",\n \"yo\",\n \"yo-bj\",\n \"yo-ng\",\n \"yrl\",\n \"yrl-br\",\n \"yrl-co\",\n \"yrl-ve\",\n \"yue\",\n \"yue-cn\",\n \"yue-hk\",\n \"zgh\",\n \"zgh-ma\",\n \"zh\",\n \"zh-cn\",\n \"zh-hans\",\n \"zh-hant\",\n \"zh-hk\",\n \"zh-mo\",\n \"zh-sg\",\n \"zh-tw\",\n \"zu\",\n \"zu-za\"\n ]\n },\n \"businessUnitId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"content\": {\n \"type\": \"object\",\n \"properties\": {\n \"smartFields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"An email field whose value is controlled by one or more smart rules.\"\n }\n },\n \"themeSettingsValues\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"flexAreas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"widgets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"plainTextVersion\": {\n \"type\": \"string\"\n },\n \"templatePath\": {\n \"type\": \"string\"\n },\n \"widgetContainers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"styleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"backgroundImage\": {\n \"type\": \"string\"\n },\n \"backgroundImageType\": {\n \"type\": \"string\"\n },\n \"bodyColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderWidth\": {\n \"type\": \"number\"\n },\n \"bodyBorderColorChoice\": {\n \"type\": \"string\"\n },\n \"primaryFont\": {\n \"type\": \"string\"\n },\n \"primaryFontColor\": {\n \"type\": \"string\"\n },\n \"primaryAccentColor\": {\n \"type\": \"string\"\n },\n \"primaryFontSize\": {\n \"type\": \"number\"\n },\n \"primaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"secondaryFont\": {\n \"type\": \"string\"\n },\n \"secondaryFontColor\": {\n \"type\": \"string\"\n },\n \"secondaryAccentColor\": {\n \"type\": \"string\"\n },\n \"secondaryFontSize\": {\n \"type\": \"number\"\n },\n \"secondaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"headingOneFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"headingTwoFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"linksFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"colorPickerFavorite1\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite2\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite3\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite4\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite5\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite6\": {\n \"type\": \"string\"\n },\n \"emailBodyPadding\": {\n \"type\": \"string\"\n },\n \"emailBodyWidth\": {\n \"type\": \"string\"\n },\n \"buttonStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"cornerRadius\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"fontStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"dividerStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"height\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"lineType\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"description\": \"Data structure representing the content of the email.\"\n },\n \"webversion\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"redirectToPageId\": {\n \"type\": \"string\"\n },\n \"isPageRedirected\": {\n \"type\": \"boolean\"\n },\n \"redirectToUrl\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"pageExpiryEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Determines if the email is archived or not.\"\n },\n \"subscriptionDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"officeLocationId\": {\n \"type\": \"string\",\n \"description\": \"ID of the selected office location.\"\n },\n \"subscriptionName\": {\n \"type\": \"string\"\n },\n \"preferencesGroupId\": {\n \"type\": \"string\"\n },\n \"subscriptionId\": {\n \"type\": \"string\",\n \"description\": \"ID of the subscription.\"\n }\n },\n \"description\": \"Data structure representing the subscription fields of the email.\"\n },\n \"activeDomain\": {\n \"type\": \"string\",\n \"description\": \"The active domain of the email.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the email, as displayed on the email dashboard.\"\n },\n \"campaign\": {\n \"type\": \"string\",\n \"description\": \"The ID of the campaign this email is associated to.\"\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"customReplyTo\": {\n \"type\": \"string\",\n \"description\": \"The reply to recipients will see.\"\n },\n \"fromName\": {\n \"type\": \"string\",\n \"description\": \"The name recipients will see.\"\n },\n \"replyTo\": {\n \"type\": \"string\",\n \"description\": \"The from address and reply to email address (if no customReplyTo defined) recipients will see.\"\n }\n },\n \"description\": \"Data structure representing the from fields on the email.\"\n },\n \"jitterSendTime\": {\n \"type\": \"boolean\"\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"The email state.\",\n \"enum\": [\n \"AUTOMATED\",\n \"AUTOMATED_DRAFT\",\n \"AUTOMATED_SENDING\",\n \"AUTOMATED_FOR_FORM\",\n \"AUTOMATED_FOR_FORM_BUFFER\",\n \"AUTOMATED_FOR_FORM_DRAFT\",\n \"AUTOMATED_FOR_FORM_LEGACY\",\n \"BLOG_EMAIL_DRAFT\",\n \"BLOG_EMAIL_PUBLISHED\",\n \"DRAFT\",\n \"DRAFT_AB\",\n \"DRAFT_AB_VARIANT\",\n \"ERROR\",\n \"LOSER_AB_VARIANT\",\n \"PAGE_STUB\",\n \"PRE_PROCESSING\",\n \"PROCESSING\",\n \"PUBLISHED\",\n \"PUBLISHED_AB\",\n \"PUBLISHED_AB_VARIANT\",\n \"PUBLISHED_OR_SCHEDULED\",\n \"RSS_TO_EMAIL_DRAFT\",\n \"RSS_TO_EMAIL_PUBLISHED\",\n \"SCHEDULED\",\n \"SCHEDULED_AB\",\n \"SCHEDULED_OR_PUBLISHED\",\n \"AUTOMATED_AB\",\n \"AUTOMATED_AB_VARIANT\",\n \"AUTOMATED_DRAFT_AB\",\n \"AUTOMATED_DRAFT_ABVARIANT\",\n \"AUTOMATED_LOSER_ABVARIANT\",\n \"AGENT_GENERATED\"\n ]\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"contactIlsLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"limitSendFrequency\": {\n \"type\": \"boolean\"\n },\n \"suppressGraymail\": {\n \"type\": \"boolean\"\n },\n \"contactIds\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"contactLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n }\n },\n \"description\": \"Data structure representing the to fields of the email.\"\n },\n \"subcategory\": {\n \"type\": \"string\",\n \"description\": \"The email subcategory.\",\n \"enum\": [\n \"ab_master\",\n \"ab_variant\",\n \"ab_loser_variant\",\n \"page_stub\",\n \"landing_page\",\n \"site_page\",\n \"legacy_page\",\n \"ab_master_site_page\",\n \"ab_variant_site_page\",\n \"ab_loser_variant_site_page\",\n \"performable_landing_page\",\n \"performable_landing_page_cutover\",\n \"staged_page\",\n \"automated\",\n \"automated_for_deal\",\n \"automated_for_form\",\n \"automated_for_form_legacy\",\n \"automated_for_form_buffer\",\n \"automated_for_form_draft\",\n \"rss_to_email\",\n \"rss_to_email_child\",\n \"blog_email\",\n \"blog_email_child\",\n \"optin_email\",\n \"optin_followup_email\",\n \"batch\",\n \"resubscribe_email\",\n \"unsubscribe_confirmation_email\",\n \"resubscribe_confirmation_email\",\n \"single_send_api\",\n \"marketing_single_send_api\",\n \"smtp_token\",\n \"localtime\",\n \"automated_for_ticket\",\n \"automated_for_leadflow\",\n \"automated_for_feedback_ces\",\n \"automated_for_feedback_nps\",\n \"automated_for_feedback_custom\",\n \"membership_registration\",\n \"membership_password_saved\",\n \"membership_password_reset\",\n \"membership_otp_login\",\n \"membership_passwordless_auth\",\n \"membership_email_verification\",\n \"membership_registration_follow_up\",\n \"membership_verification\",\n \"membership_follow_up\",\n \"ticket_closed_kickback_email\",\n \"ticket_opened_kickback_email\",\n \"automated_for_custom_survey\",\n \"discardable_stub\",\n \"normal_blog_post\",\n \"legacy_blog_post\",\n \"imported_blog_post\",\n \"automated_ab_master\",\n \"automated_ab_variant\",\n \"web_interactive\",\n \"portal_content\",\n \"page_instance_layout\",\n \"kb_article_instance_layout\",\n \"kb_listing\",\n \"kb_search_results\",\n \"kb_support_form\",\n \"kb_404_page\",\n \"case_study\",\n \"case_study_listing\",\n \"case_study_instance_layout\",\n \"scp_static_page\",\n \"scp_instance_layout_page\",\n \"podcast_instance_layout\",\n \"podcast_listing\",\n \"blog_article_instance_layout\",\n \"blog_article_listing\",\n \"blog_author_detail\",\n \"UNKNOWN\"\n ]\n },\n \"sendOnPublish\": {\n \"type\": \"boolean\",\n \"description\": \"Determines whether the email will be sent immediately on publish.\"\n }\n },\n \"description\": \"Properties of a marketing email you can set when creating a marketing email.\",\n \"example\": {\n \"activeDomain\": \"test.hs-sites.com\",\n \"archived\": false,\n \"campaign\": \"1b7f51a6-33c1-44d6-ba28-fe81f655dced\",\n \"content\": {\n \"flexAreas\": {\n \"main\": {\n \"boxed\": false,\n \"isSingleColumnFullWidth\": false,\n \"sections\": [\n {\n \"columns\": [\n {\n \"id\": \"column_1606761806181_0\",\n \"widgets\": [\n \"module_160676180617911\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section_1606761806181\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-0-1\",\n \"widgets\": [\n \"module-0-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-0\",\n \"style\": {\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"40px\",\n \"paddingTop\": \"40px\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-1-1\",\n \"widgets\": [\n \"module-1-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-1\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"0px\",\n \"paddingTop\": \"0px\"\n }\n }\n ]\n }\n },\n \"plainTextVersion\": \"This is custom! View in browser ({{view_as_page_url}})\\n\\nHello {{ contact.firstname }},\\n\\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.\\n\\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\\n\\nLink text\\n\\nNow it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\\n\\nAll the best,\\n\\nYour full name\\n\\nYour job title\\n\\nOther contact information\\n\\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\\n\\nUnsubscribe ({{unsubscribe_link_all}})\\n\\nManage preferences ({{unsubscribe_link}})\",\n \"styleSettings\": {},\n \"widgets\": {\n \"module-0-1-1\": {\n \"body\": {\n \"css_class\": \"dnd-module\",\n \"html\": \"

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

\",\n \"i18nKey\": \"richText.plainText\",\n \"path\": \"@hubspot/rich_text\",\n \"schema_version\": 2\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-0-1-1\",\n \"module_id\": 1155639,\n \"name\": \"module-0-1-1\",\n \"order\": 2,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module-1-1-1\": {\n \"body\": {\n \"align\": \"center\",\n \"css_class\": \"dnd-module\",\n \"font\": {\n \"color\": \"#23496d\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n }\n },\n \"link_font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Helvetica,Arial,sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"path\": \"@hubspot/email_footer\",\n \"schema_version\": 2,\n \"unsubscribe_link_type\": \"both\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-1-1-1\",\n \"module_id\": 2869621,\n \"name\": \"module-1-1-1\",\n \"order\": 3,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module_160676180617911\": {\n \"body\": {\n \"font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"hs_enable_module_padding\": false,\n \"hs_wrapper_css\": {}\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module_160676180617911\",\n \"module_id\": 2794854,\n \"name\": \"module_160676180617911\",\n \"styles\": {},\n \"type\": \"module\"\n },\n \"preview_text\": {\n \"body\": {\n \"value\": \"\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"preview_text\",\n \"label\": \"Preview Text This will be used as the preview text that displays in some email clients\",\n \"name\": \"preview_text\",\n \"order\": 0,\n \"styles\": {},\n \"type\": \"text\"\n }\n }\n },\n \"createdAt\": \"2020-11-30T18:43:17.136Z\",\n \"createdById\": 3739732,\n \"from\": {\n \"fromName\": \"Bruce Wayne\",\n \"replyTo\": \"test@hubspot.com\"\n },\n \"name\": \"My subject\",\n \"publishDate\": \"2023-11-30T18:44:20.387Z\",\n \"sendOnPublish\": true,\n \"state\": \"DRAFT\",\n \"subcategory\": \"batch\",\n \"subject\": \"My subject\",\n \"subscriptionDetails\": {\n \"officeLocationId\": \"5449392956\"\n },\n \"to\": {\n \"contactIds\": {},\n \"contactIlsLists\": {\n \"exclude\": [\n 1\n ],\n \"include\": [\n 5\n ]\n },\n \"suppressGraymail\": true\n },\n \"webversion\": {\n \"expiresAt\": \"2020-11-30T18:44:20.387Z\",\n \"metaDescription\": \"\",\n \"redirectToPageId\": 0,\n \"redirectToUrl\": \"http://www.example.org\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "restore_email_revision", + "description": { + "tagline": "Restore a previous revision of a marketing email.", + "detailed": "Use this tool to revert a marketing email to a specified previous revision. The current version is archived, and the restored revision is assigned a new version number." + }, + "return_annotation": "Confirmation of email revision restoration.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_version_id" + ], + "description": "The unique identifier for the marketing email you want to restore. This ID is required to specify which email's revision needs restoration.", + "endpoint_argument_name": "emailId" + }, + { + "name": "revision_id", + "alternative_names": [ + "revision_identifier", + "revision_number" + ], + "description": "The unique identifier for the specific revision of the email to be restored.", + "endpoint_argument_name": "revisionId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore", + "tags": [ + "Marketing Emails" + ], + "summary": "Restore a revision of a marketing email", + "description": "Restores a previous revision of a marketing email. The current revision becomes old, and the restored revision is given a new version number.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + }, + { + "name": "revisionId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/emails/{emailId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_email_details", + "description": { + "tagline": "Retrieve details for a specific marketing email.", + "detailed": "Use this tool to get comprehensive information about a marketing email by specifying its email ID." + }, + "return_annotation": "Details of a specific marketing email.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_unique_id" + ], + "description": "The unique identifier for the specific marketing email. Required to retrieve email details.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/emails/{emailId}", + "tags": [ + "Marketing Emails" + ], + "summary": "Get the details of a specified marketing email.", + "description": "Get the details for a marketing email.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/emails/{emailId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_marketing_email", + "description": { + "tagline": "Delete an existing marketing email by ID.", + "detailed": "Use this tool to remove a specific marketing email from the HubSpot system by providing its unique email ID. This is useful for managing email lists and ensuring outdated or incorrect emails are removed." + }, + "return_annotation": "Confirmation of email deletion.", + "arguments": [ + { + "name": "email_id", + "alternative_names": [ + "email_identifier", + "email_key" + ], + "description": "The unique ID of the marketing email to be deleted.", + "endpoint_argument_name": "emailId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/emails/{emailId}", + "tags": [ + "Marketing Emails" + ], + "summary": "Delete an email", + "description": "Delete an existing marketing email.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/marketing/v3/emails/{emailId}", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_marketing_email_properties", + "description": { + "tagline": "Change properties of a marketing email.", + "detailed": "Use this tool to update properties of an existing marketing email by specifying the email ID. It helps in modifying content or settings of your marketing campaigns." + }, + "return_annotation": "Updated marketing email details.", + "arguments": [ + { + "name": "email_identifier", + "alternative_names": [ + "marketing_email_id", + "email_unique_id" + ], + "description": "The unique identifier of the marketing email to be updated. Required to specify which email's properties are being changed.", + "endpoint_argument_name": "emailId" + }, + { + "name": "email_properties", + "alternative_names": [ + "email_update_data", + "email_metadata" + ], + "description": "JSON object containing fields to update in the marketing email, like subject, content, A/B testing info, etc.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/marketing/v3/emails/{emailId}", + "tags": [ + "Marketing Emails" + ], + "summary": "Update a marketing email.", + "description": "Change properties of a marketing email.", + "requires_security": true, + "oauth_scopes": [ + "content" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "emailId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string", + "pattern": ".+" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "A marketing email object with properties that should overwrite the corresponding properties of the marketing email." + }, + "description": "A marketing email object with properties that should overwrite the corresponding properties of the marketing email.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "Properties of a marketing email you can update via the API.", + "properties": { + "rssData": { + "type": "object", + "description": "RSS related data if it is a blog or rss email.", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "type": "object", + "description": "AB testing related data. This property is only returned for AB type emails.", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + } + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object", + "description": "Data structure representing the content of the email.", + "properties": { + "smartFields": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + } + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "type": "object", + "description": "Data structure representing the subscription fields of the email.", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + } + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "type": "object", + "description": "Data structure representing the from fields on the email.", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "type": "object", + "description": "Data structure representing the to fields of the email.", + "properties": { + "contactIlsLists": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + }, + "contactLists": { + "type": "object", + "description": "Data structure representing lists of IDs that should be included and excluded.", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + } + } + } + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"A marketing email object with properties that should overwrite the corresponding properties of the marketing email.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"rssData\": {\n \"type\": \"object\",\n \"properties\": {\n \"blogImageMaxWidth\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"blogEmailType\": {\n \"type\": \"string\"\n },\n \"hubspotBlogId\": {\n \"type\": \"string\"\n },\n \"rssEntryTemplate\": {\n \"type\": \"string\"\n },\n \"timing\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"useHeadlineAsSubject\": {\n \"type\": \"boolean\"\n },\n \"blogLayout\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"RSS related data if it is a blog or rss email.\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"The subject of the email.\"\n },\n \"testing\": {\n \"type\": \"object\",\n \"properties\": {\n \"isAbVariation\": {\n \"type\": \"boolean\"\n },\n \"abSamplingDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if the results are inconclusive after the test period, master or variant.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abSampleSizeDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if there are too few recipients to conduct an AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abStatus\": {\n \"type\": \"string\",\n \"description\": \"Status of the AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abTestPercentage\": {\n \"type\": \"integer\",\n \"description\": \"The size of your test group.\",\n \"format\": \"int32\"\n },\n \"hoursToWait\": {\n \"type\": \"integer\",\n \"description\": \"Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.\",\n \"format\": \"int32\"\n },\n \"testId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the AB test.\"\n },\n \"abSuccessMetric\": {\n \"type\": \"string\",\n \"description\": \"Metric to determine the version that will be sent to the remaining contacts.\",\n \"enum\": [\n \"CLICKS_BY_OPENS\",\n \"CLICKS_BY_DELIVERED\",\n \"OPENS_BY_DELIVERED\"\n ]\n }\n },\n \"description\": \"AB testing related data. This property is only returned for AB type emails.\"\n },\n \"publishDate\": {\n \"type\": \"string\",\n \"description\": \"The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.\",\n \"format\": \"date-time\"\n },\n \"language\": {\n \"type\": \"string\",\n \"enum\": [\n \"af\",\n \"af-na\",\n \"af-za\",\n \"agq\",\n \"agq-cm\",\n \"ak\",\n \"ak-gh\",\n \"am\",\n \"am-et\",\n \"ann\",\n \"ann-ng\",\n \"ar\",\n \"ar-001\",\n \"ar-ae\",\n \"ar-bh\",\n \"ar-dj\",\n \"ar-dz\",\n \"ar-eg\",\n \"ar-eh\",\n \"ar-er\",\n \"ar-il\",\n \"ar-iq\",\n \"ar-jo\",\n \"ar-km\",\n \"ar-kw\",\n \"ar-lb\",\n \"ar-ly\",\n \"ar-ma\",\n \"ar-mr\",\n \"ar-om\",\n \"ar-ps\",\n \"ar-qa\",\n \"ar-sa\",\n \"ar-sd\",\n \"ar-so\",\n \"ar-ss\",\n \"ar-sy\",\n \"ar-td\",\n \"ar-tn\",\n \"ar-ye\",\n \"as\",\n \"asa\",\n \"asa-tz\",\n \"ast\",\n \"ast-es\",\n \"as-in\",\n \"az\",\n \"az-az\",\n \"bas\",\n \"bas-cm\",\n \"be\",\n \"bem\",\n \"bem-zm\",\n \"bez\",\n \"bez-tz\",\n \"be-by\",\n \"bg\",\n \"bgc\",\n \"bgc-in\",\n \"bg-bg\",\n \"bho\",\n \"bho-in\",\n \"bm\",\n \"bm-ml\",\n \"bn\",\n \"bn-bd\",\n \"bn-in\",\n \"bo\",\n \"bo-cn\",\n \"bo-in\",\n \"br\",\n \"brx\",\n \"brx-in\",\n \"br-fr\",\n \"bs\",\n \"bs-ba\",\n \"ca\",\n \"ca-ad\",\n \"ca-es\",\n \"ca-fr\",\n \"ca-it\",\n \"ccp\",\n \"ccp-bd\",\n \"ccp-in\",\n \"ce\",\n \"ceb\",\n \"ceb-ph\",\n \"ce-ru\",\n \"cgg\",\n \"cgg-ug\",\n \"chr\",\n \"chr-us\",\n \"ckb\",\n \"ckb-iq\",\n \"ckb-ir\",\n \"cs\",\n \"cs-cz\",\n \"cu\",\n \"cu-ru\",\n \"cv\",\n \"cv-ru\",\n \"cy\",\n \"cy-gb\",\n \"da\",\n \"dav\",\n \"dav-ke\",\n \"da-dk\",\n \"da-gl\",\n \"de\",\n \"de-at\",\n \"de-be\",\n \"de-ch\",\n \"de-de\",\n \"de-gr\",\n \"de-it\",\n \"de-li\",\n \"de-lu\",\n \"dje\",\n \"dje-ne\",\n \"doi\",\n \"doi-in\",\n \"dsb\",\n \"dsb-de\",\n \"dua\",\n \"dua-cm\",\n \"dyo\",\n \"dyo-sn\",\n \"dz\",\n \"dz-bt\",\n \"ebu\",\n \"ebu-ke\",\n \"ee\",\n \"ee-gh\",\n \"ee-tg\",\n \"el\",\n \"el-cy\",\n \"el-gr\",\n \"en\",\n \"en-001\",\n \"en-150\",\n \"en-ae\",\n \"en-ag\",\n \"en-ai\",\n \"en-as\",\n \"en-at\",\n \"en-au\",\n \"en-bb\",\n \"en-be\",\n \"en-bi\",\n \"en-bm\",\n \"en-bs\",\n \"en-bw\",\n \"en-bz\",\n \"en-ca\",\n \"en-cc\",\n \"en-ch\",\n \"en-ck\",\n \"en-cm\",\n \"en-cn\",\n \"en-cx\",\n \"en-cy\",\n \"en-de\",\n \"en-dg\",\n \"en-dk\",\n \"en-dm\",\n \"en-ee\",\n \"en-eg\",\n \"en-er\",\n \"en-es\",\n \"en-fi\",\n \"en-fj\",\n \"en-fk\",\n \"en-fm\",\n \"en-fr\",\n \"en-gb\",\n \"en-gd\",\n \"en-gg\",\n \"en-gh\",\n \"en-gi\",\n \"en-gm\",\n \"en-gu\",\n \"en-gy\",\n \"en-hk\",\n \"en-ie\",\n \"en-il\",\n \"en-im\",\n \"en-in\",\n \"en-io\",\n \"en-je\",\n \"en-jm\",\n \"en-ke\",\n \"en-ki\",\n \"en-kn\",\n \"en-ky\",\n \"en-lc\",\n \"en-lr\",\n \"en-ls\",\n \"en-lu\",\n \"en-mg\",\n \"en-mh\",\n \"en-mo\",\n \"en-mp\",\n \"en-ms\",\n \"en-mt\",\n \"en-mu\",\n \"en-mv\",\n \"en-mw\",\n \"en-mx\",\n \"en-my\",\n \"en-na\",\n \"en-nf\",\n \"en-ng\",\n \"en-nl\",\n \"en-nr\",\n \"en-nu\",\n \"en-nz\",\n \"en-pg\",\n \"en-ph\",\n \"en-pk\",\n \"en-pn\",\n \"en-pr\",\n \"en-pw\",\n \"en-rw\",\n \"en-sb\",\n \"en-sc\",\n \"en-sd\",\n \"en-se\",\n \"en-sg\",\n \"en-sh\",\n \"en-si\",\n \"en-sl\",\n \"en-ss\",\n \"en-sx\",\n \"en-sz\",\n \"en-tc\",\n \"en-tk\",\n \"en-tn\",\n \"en-to\",\n \"en-tt\",\n \"en-tv\",\n \"en-tz\",\n \"en-ug\",\n \"en-um\",\n \"en-us\",\n \"en-vc\",\n \"en-vg\",\n \"en-vi\",\n \"en-vu\",\n \"en-ws\",\n \"en-za\",\n \"en-zm\",\n \"en-zw\",\n \"eo\",\n \"eo-001\",\n \"es\",\n \"es-419\",\n \"es-ar\",\n \"es-bo\",\n \"es-br\",\n \"es-bz\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-cu\",\n \"es-do\",\n \"es-ea\",\n \"es-ec\",\n \"es-es\",\n \"es-gq\",\n \"es-gt\",\n \"es-hn\",\n \"es-ic\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-pe\",\n \"es-ph\",\n \"es-pr\",\n \"es-py\",\n \"es-sv\",\n \"es-us\",\n \"es-uy\",\n \"es-ve\",\n \"et\",\n \"et-ee\",\n \"eu\",\n \"eu-es\",\n \"ewo\",\n \"ewo-cm\",\n \"fa\",\n \"fa-af\",\n \"fa-ir\",\n \"ff\",\n \"ff-bf\",\n \"ff-cm\",\n \"ff-gh\",\n \"ff-gm\",\n \"ff-gn\",\n \"ff-gw\",\n \"ff-lr\",\n \"ff-mr\",\n \"ff-ne\",\n \"ff-ng\",\n \"ff-sl\",\n \"ff-sn\",\n \"fi\",\n \"fil\",\n \"fil-ph\",\n \"fi-fi\",\n \"fo\",\n \"fo-dk\",\n \"fo-fo\",\n \"fr\",\n \"frr\",\n \"frr-de\",\n \"fr-be\",\n \"fr-bf\",\n \"fr-bi\",\n \"fr-bj\",\n \"fr-bl\",\n \"fr-ca\",\n \"fr-cd\",\n \"fr-cf\",\n \"fr-cg\",\n \"fr-ch\",\n \"fr-ci\",\n \"fr-cm\",\n \"fr-dj\",\n \"fr-dz\",\n \"fr-fr\",\n \"fr-ga\",\n \"fr-gf\",\n \"fr-gn\",\n \"fr-gp\",\n \"fr-gq\",\n \"fr-ht\",\n \"fr-km\",\n \"fr-lu\",\n \"fr-ma\",\n \"fr-mc\",\n \"fr-mf\",\n \"fr-mg\",\n \"fr-ml\",\n \"fr-mq\",\n \"fr-mr\",\n \"fr-mu\",\n \"fr-nc\",\n \"fr-ne\",\n \"fr-pf\",\n \"fr-pm\",\n \"fr-re\",\n \"fr-rw\",\n \"fr-sc\",\n \"fr-sn\",\n \"fr-sy\",\n \"fr-td\",\n \"fr-tg\",\n \"fr-tn\",\n \"fr-vu\",\n \"fr-wf\",\n \"fr-yt\",\n \"fur\",\n \"fur-it\",\n \"fy\",\n \"fy-nl\",\n \"ga\",\n \"ga-gb\",\n \"ga-ie\",\n \"gd\",\n \"gd-gb\",\n \"gl\",\n \"gl-es\",\n \"gsw\",\n \"gsw-ch\",\n \"gsw-fr\",\n \"gsw-li\",\n \"gu\",\n \"guz\",\n \"guz-ke\",\n \"gu-in\",\n \"gv\",\n \"gv-im\",\n \"ha\",\n \"haw\",\n \"haw-us\",\n \"ha-gh\",\n \"ha-ne\",\n \"ha-ng\",\n \"he\",\n \"he-il\",\n \"hi\",\n \"hi-in\",\n \"hr\",\n \"hr-ba\",\n \"hr-hr\",\n \"hsb\",\n \"hsb-de\",\n \"hu\",\n \"hu-hu\",\n \"hy\",\n \"hy-am\",\n \"ia\",\n \"ia-001\",\n \"id\",\n \"ig\",\n \"ig-ng\",\n \"ii\",\n \"ii-cn\",\n \"id-id\",\n \"is\",\n \"is-is\",\n \"it\",\n \"it-ch\",\n \"it-it\",\n \"it-sm\",\n \"it-va\",\n \"ja\",\n \"ja-jp\",\n \"jgo\",\n \"jgo-cm\",\n \"yi\",\n \"yi-001\",\n \"jmc\",\n \"jmc-tz\",\n \"jv\",\n \"jv-id\",\n \"ka\",\n \"kab\",\n \"kab-dz\",\n \"kam\",\n \"kam-ke\",\n \"ka-ge\",\n \"kde\",\n \"kde-tz\",\n \"kea\",\n \"kea-cv\",\n \"kgp\",\n \"kgp-br\",\n \"khq\",\n \"khq-ml\",\n \"ki\",\n \"ki-ke\",\n \"kk\",\n \"kkj\",\n \"kkj-cm\",\n \"kk-kz\",\n \"kl\",\n \"kln\",\n \"kln-ke\",\n \"kl-gl\",\n \"km\",\n \"km-kh\",\n \"kn\",\n \"kn-in\",\n \"ko\",\n \"kok\",\n \"kok-in\",\n \"ko-kp\",\n \"ko-kr\",\n \"ks\",\n \"ksb\",\n \"ksb-tz\",\n \"ksf\",\n \"ksf-cm\",\n \"ksh\",\n \"ksh-de\",\n \"ks-in\",\n \"ku\",\n \"ku-tr\",\n \"kw\",\n \"kw-gb\",\n \"ky\",\n \"ky-kg\",\n \"lag\",\n \"lag-tz\",\n \"lb\",\n \"lb-lu\",\n \"lg\",\n \"lg-ug\",\n \"lkt\",\n \"lkt-us\",\n \"ln\",\n \"ln-ao\",\n \"ln-cd\",\n \"ln-cf\",\n \"ln-cg\",\n \"lo\",\n \"lo-la\",\n \"lrc\",\n \"lrc-iq\",\n \"lrc-ir\",\n \"lt\",\n \"lt-lt\",\n \"lu\",\n \"luo\",\n \"luo-ke\",\n \"luy\",\n \"luy-ke\",\n \"lu-cd\",\n \"lv\",\n \"lv-lv\",\n \"mai\",\n \"mai-in\",\n \"mas\",\n \"mas-ke\",\n \"mas-tz\",\n \"mdf\",\n \"mdf-ru\",\n \"mer\",\n \"mer-ke\",\n \"mfe\",\n \"mfe-mu\",\n \"mg\",\n \"mgh\",\n \"mgh-mz\",\n \"mgo\",\n \"mgo-cm\",\n \"mg-mg\",\n \"mi\",\n \"mi-nz\",\n \"mk\",\n \"mk-mk\",\n \"ml\",\n \"ml-in\",\n \"mn\",\n \"mni\",\n \"mni-in\",\n \"mn-mn\",\n \"mr\",\n \"mr-in\",\n \"ms\",\n \"ms-bn\",\n \"ms-id\",\n \"ms-my\",\n \"ms-sg\",\n \"mt\",\n \"mt-mt\",\n \"mua\",\n \"mua-cm\",\n \"my\",\n \"my-mm\",\n \"mzn\",\n \"mzn-ir\",\n \"naq\",\n \"naq-na\",\n \"nb\",\n \"nb-no\",\n \"nb-sj\",\n \"nd\",\n \"nds\",\n \"nds-de\",\n \"nds-nl\",\n \"nd-zw\",\n \"ne\",\n \"ne-in\",\n \"ne-np\",\n \"nl\",\n \"nl-aw\",\n \"nl-be\",\n \"nl-bq\",\n \"nl-ch\",\n \"nl-cw\",\n \"nl-lu\",\n \"nl-nl\",\n \"nl-sr\",\n \"nl-sx\",\n \"nmg\",\n \"nmg-cm\",\n \"nn\",\n \"nnh\",\n \"nnh-cm\",\n \"nn-no\",\n \"no\",\n \"no-no\",\n \"nus\",\n \"nus-ss\",\n \"nyn\",\n \"nyn-ug\",\n \"oc\",\n \"oc-es\",\n \"oc-fr\",\n \"om\",\n \"om-et\",\n \"om-ke\",\n \"or\",\n \"or-in\",\n \"os\",\n \"os-ge\",\n \"os-ru\",\n \"pa\",\n \"pa-in\",\n \"pa-pk\",\n \"pcm\",\n \"pcm-ng\",\n \"pis\",\n \"pis-sb\",\n \"pl\",\n \"pl-pl\",\n \"prg\",\n \"prg-001\",\n \"ps\",\n \"ps-af\",\n \"ps-pk\",\n \"pt\",\n \"pt-ao\",\n \"pt-br\",\n \"pt-ch\",\n \"pt-cv\",\n \"pt-gq\",\n \"pt-gw\",\n \"pt-lu\",\n \"pt-mo\",\n \"pt-mz\",\n \"pt-pt\",\n \"pt-st\",\n \"pt-tl\",\n \"qu\",\n \"qu-bo\",\n \"qu-ec\",\n \"qu-pe\",\n \"raj\",\n \"raj-in\",\n \"rm\",\n \"rm-ch\",\n \"rn\",\n \"rn-bi\",\n \"ro\",\n \"rof\",\n \"rof-tz\",\n \"ro-md\",\n \"ro-ro\",\n \"ru\",\n \"ru-by\",\n \"ru-kg\",\n \"ru-kz\",\n \"ru-md\",\n \"ru-ru\",\n \"ru-ua\",\n \"rw\",\n \"rwk\",\n \"rwk-tz\",\n \"rw-rw\",\n \"sa\",\n \"sah\",\n \"sah-ru\",\n \"saq\",\n \"saq-ke\",\n \"sat\",\n \"sat-in\",\n \"sa-in\",\n \"sbp\",\n \"sbp-tz\",\n \"sc\",\n \"sc-it\",\n \"sd\",\n \"sd-in\",\n \"sd-pk\",\n \"se\",\n \"seh\",\n \"seh-mz\",\n \"ses\",\n \"ses-ml\",\n \"se-fi\",\n \"se-no\",\n \"se-se\",\n \"sg\",\n \"sg-cf\",\n \"shi\",\n \"shi-ma\",\n \"si\",\n \"si-lk\",\n \"sk\",\n \"sk-sk\",\n \"sl\",\n \"sl-si\",\n \"smn\",\n \"smn-fi\",\n \"sms\",\n \"sms-fi\",\n \"sn\",\n \"sn-zw\",\n \"so\",\n \"so-dj\",\n \"so-et\",\n \"so-ke\",\n \"so-so\",\n \"sq\",\n \"sq-al\",\n \"sq-mk\",\n \"sq-xk\",\n \"sr\",\n \"sr-ba\",\n \"sr-cs\",\n \"sr-me\",\n \"sr-rs\",\n \"sr-xk\",\n \"su\",\n \"su-id\",\n \"sv\",\n \"sv-ax\",\n \"sv-fi\",\n \"sv-se\",\n \"sw\",\n \"sw-cd\",\n \"sw-ke\",\n \"sw-tz\",\n \"sw-ug\",\n \"sy\",\n \"ta\",\n \"ta-in\",\n \"ta-lk\",\n \"ta-my\",\n \"ta-sg\",\n \"te\",\n \"teo\",\n \"teo-ke\",\n \"teo-ug\",\n \"te-in\",\n \"tg\",\n \"tg-tj\",\n \"th\",\n \"th-th\",\n \"ti\",\n \"ti-er\",\n \"ti-et\",\n \"tk\",\n \"tk-tm\",\n \"tl\",\n \"to\",\n \"tok\",\n \"tok-001\",\n \"to-to\",\n \"tr\",\n \"tr-cy\",\n \"tr-tr\",\n \"tt\",\n \"tt-ru\",\n \"twq\",\n \"twq-ne\",\n \"tzm\",\n \"tzm-ma\",\n \"ug\",\n \"ug-cn\",\n \"uk\",\n \"uk-ua\",\n \"ur\",\n \"ur-in\",\n \"ur-pk\",\n \"uz\",\n \"uz-af\",\n \"uz-uz\",\n \"vai\",\n \"vai-lr\",\n \"vi\",\n \"vi-vn\",\n \"vo\",\n \"vo-001\",\n \"vun\",\n \"vun-tz\",\n \"wae\",\n \"wae-ch\",\n \"wo\",\n \"wo-sn\",\n \"xh\",\n \"xh-za\",\n \"xog\",\n \"xog-ug\",\n \"yav\",\n \"yav-cm\",\n \"yo\",\n \"yo-bj\",\n \"yo-ng\",\n \"yrl\",\n \"yrl-br\",\n \"yrl-co\",\n \"yrl-ve\",\n \"yue\",\n \"yue-cn\",\n \"yue-hk\",\n \"zgh\",\n \"zgh-ma\",\n \"zh\",\n \"zh-cn\",\n \"zh-hans\",\n \"zh-hant\",\n \"zh-hk\",\n \"zh-mo\",\n \"zh-sg\",\n \"zh-tw\",\n \"zu\",\n \"zu-za\"\n ]\n },\n \"businessUnitId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"content\": {\n \"type\": \"object\",\n \"properties\": {\n \"smartFields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"An email field whose value is controlled by one or more smart rules.\"\n }\n },\n \"themeSettingsValues\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"flexAreas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"widgets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"plainTextVersion\": {\n \"type\": \"string\"\n },\n \"templatePath\": {\n \"type\": \"string\"\n },\n \"widgetContainers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"styleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"backgroundImage\": {\n \"type\": \"string\"\n },\n \"backgroundImageType\": {\n \"type\": \"string\"\n },\n \"bodyColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderWidth\": {\n \"type\": \"number\"\n },\n \"bodyBorderColorChoice\": {\n \"type\": \"string\"\n },\n \"primaryFont\": {\n \"type\": \"string\"\n },\n \"primaryFontColor\": {\n \"type\": \"string\"\n },\n \"primaryAccentColor\": {\n \"type\": \"string\"\n },\n \"primaryFontSize\": {\n \"type\": \"number\"\n },\n \"primaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"secondaryFont\": {\n \"type\": \"string\"\n },\n \"secondaryFontColor\": {\n \"type\": \"string\"\n },\n \"secondaryAccentColor\": {\n \"type\": \"string\"\n },\n \"secondaryFontSize\": {\n \"type\": \"number\"\n },\n \"secondaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"headingOneFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"headingTwoFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"linksFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"colorPickerFavorite1\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite2\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite3\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite4\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite5\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite6\": {\n \"type\": \"string\"\n },\n \"emailBodyPadding\": {\n \"type\": \"string\"\n },\n \"emailBodyWidth\": {\n \"type\": \"string\"\n },\n \"buttonStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"cornerRadius\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"fontStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"dividerStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"height\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"lineType\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"description\": \"Data structure representing the content of the email.\"\n },\n \"webversion\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"redirectToPageId\": {\n \"type\": \"string\"\n },\n \"isPageRedirected\": {\n \"type\": \"boolean\"\n },\n \"redirectToUrl\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"pageExpiryEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Determines if the email is archived or not.\"\n },\n \"subscriptionDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"officeLocationId\": {\n \"type\": \"string\",\n \"description\": \"ID of the selected office location.\"\n },\n \"subscriptionName\": {\n \"type\": \"string\"\n },\n \"preferencesGroupId\": {\n \"type\": \"string\"\n },\n \"subscriptionId\": {\n \"type\": \"string\",\n \"description\": \"ID of the subscription.\"\n }\n },\n \"description\": \"Data structure representing the subscription fields of the email.\"\n },\n \"activeDomain\": {\n \"type\": \"string\",\n \"description\": \"The active domain of the email.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the email, as displayed on the email dashboard.\"\n },\n \"campaign\": {\n \"type\": \"string\",\n \"description\": \"The ID of the campaign this email is associated to.\"\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"customReplyTo\": {\n \"type\": \"string\",\n \"description\": \"The reply to recipients will see.\"\n },\n \"fromName\": {\n \"type\": \"string\",\n \"description\": \"The name recipients will see.\"\n },\n \"replyTo\": {\n \"type\": \"string\",\n \"description\": \"The from address and reply to email address (if no customReplyTo defined) recipients will see.\"\n }\n },\n \"description\": \"Data structure representing the from fields on the email.\"\n },\n \"jitterSendTime\": {\n \"type\": \"boolean\"\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"The email state.\",\n \"enum\": [\n \"AUTOMATED\",\n \"AUTOMATED_DRAFT\",\n \"AUTOMATED_SENDING\",\n \"AUTOMATED_FOR_FORM\",\n \"AUTOMATED_FOR_FORM_BUFFER\",\n \"AUTOMATED_FOR_FORM_DRAFT\",\n \"AUTOMATED_FOR_FORM_LEGACY\",\n \"BLOG_EMAIL_DRAFT\",\n \"BLOG_EMAIL_PUBLISHED\",\n \"DRAFT\",\n \"DRAFT_AB\",\n \"DRAFT_AB_VARIANT\",\n \"ERROR\",\n \"LOSER_AB_VARIANT\",\n \"PAGE_STUB\",\n \"PRE_PROCESSING\",\n \"PROCESSING\",\n \"PUBLISHED\",\n \"PUBLISHED_AB\",\n \"PUBLISHED_AB_VARIANT\",\n \"PUBLISHED_OR_SCHEDULED\",\n \"RSS_TO_EMAIL_DRAFT\",\n \"RSS_TO_EMAIL_PUBLISHED\",\n \"SCHEDULED\",\n \"SCHEDULED_AB\",\n \"SCHEDULED_OR_PUBLISHED\",\n \"AUTOMATED_AB\",\n \"AUTOMATED_AB_VARIANT\",\n \"AUTOMATED_DRAFT_AB\",\n \"AUTOMATED_DRAFT_ABVARIANT\",\n \"AUTOMATED_LOSER_ABVARIANT\",\n \"AGENT_GENERATED\"\n ]\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"contactIlsLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"limitSendFrequency\": {\n \"type\": \"boolean\"\n },\n \"suppressGraymail\": {\n \"type\": \"boolean\"\n },\n \"contactIds\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"contactLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n }\n },\n \"description\": \"Data structure representing the to fields of the email.\"\n },\n \"subcategory\": {\n \"type\": \"string\",\n \"description\": \"The email subcategory.\",\n \"enum\": [\n \"ab_master\",\n \"ab_variant\",\n \"ab_loser_variant\",\n \"page_stub\",\n \"landing_page\",\n \"site_page\",\n \"legacy_page\",\n \"ab_master_site_page\",\n \"ab_variant_site_page\",\n \"ab_loser_variant_site_page\",\n \"performable_landing_page\",\n \"performable_landing_page_cutover\",\n \"staged_page\",\n \"automated\",\n \"automated_for_deal\",\n \"automated_for_form\",\n \"automated_for_form_legacy\",\n \"automated_for_form_buffer\",\n \"automated_for_form_draft\",\n \"rss_to_email\",\n \"rss_to_email_child\",\n \"blog_email\",\n \"blog_email_child\",\n \"optin_email\",\n \"optin_followup_email\",\n \"batch\",\n \"resubscribe_email\",\n \"unsubscribe_confirmation_email\",\n \"resubscribe_confirmation_email\",\n \"single_send_api\",\n \"marketing_single_send_api\",\n \"smtp_token\",\n \"localtime\",\n \"automated_for_ticket\",\n \"automated_for_leadflow\",\n \"automated_for_feedback_ces\",\n \"automated_for_feedback_nps\",\n \"automated_for_feedback_custom\",\n \"membership_registration\",\n \"membership_password_saved\",\n \"membership_password_reset\",\n \"membership_otp_login\",\n \"membership_passwordless_auth\",\n \"membership_email_verification\",\n \"membership_registration_follow_up\",\n \"membership_verification\",\n \"membership_follow_up\",\n \"ticket_closed_kickback_email\",\n \"ticket_opened_kickback_email\",\n \"automated_for_custom_survey\",\n \"discardable_stub\",\n \"normal_blog_post\",\n \"legacy_blog_post\",\n \"imported_blog_post\",\n \"automated_ab_master\",\n \"automated_ab_variant\",\n \"web_interactive\",\n \"portal_content\",\n \"page_instance_layout\",\n \"kb_article_instance_layout\",\n \"kb_listing\",\n \"kb_search_results\",\n \"kb_support_form\",\n \"kb_404_page\",\n \"case_study\",\n \"case_study_listing\",\n \"case_study_instance_layout\",\n \"scp_static_page\",\n \"scp_instance_layout_page\",\n \"podcast_instance_layout\",\n \"podcast_listing\",\n \"blog_article_instance_layout\",\n \"blog_article_listing\",\n \"blog_author_detail\",\n \"UNKNOWN\"\n ]\n },\n \"sendOnPublish\": {\n \"type\": \"boolean\",\n \"description\": \"Determines whether the email will be sent immediately on publish.\"\n }\n },\n \"description\": \"Properties of a marketing email you can update via the API.\",\n \"example\": {\n \"activeDomain\": \"test.hs-sites.com\",\n \"archived\": false,\n \"campaign\": \"1b7f51a6-33c1-44d6-ba28-fe81f655dced\",\n \"content\": {\n \"flexAreas\": {\n \"main\": {\n \"boxed\": false,\n \"isSingleColumnFullWidth\": false,\n \"sections\": [\n {\n \"columns\": [\n {\n \"id\": \"column_1606761806181_0\",\n \"widgets\": [\n \"module_160676180617911\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section_1606761806181\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-0-1\",\n \"widgets\": [\n \"module-0-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-0\",\n \"style\": {\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"40px\",\n \"paddingTop\": \"40px\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-1-1\",\n \"widgets\": [\n \"module-1-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-1\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"0px\",\n \"paddingTop\": \"0px\"\n }\n }\n ]\n }\n },\n \"plainTextVersion\": \"This is custom! View in browser ({{view_as_page_url}})\\n\\nHello {{ contact.firstname }},\\n\\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.\\n\\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\\n\\nLink text\\n\\nNow it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\\n\\nAll the best,\\n\\nYour full name\\n\\nYour job title\\n\\nOther contact information\\n\\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\\n\\nUnsubscribe ({{unsubscribe_link_all}})\\n\\nManage preferences ({{unsubscribe_link}})\",\n \"styleSettings\": {},\n \"widgets\": {\n \"module-0-1-1\": {\n \"body\": {\n \"css_class\": \"dnd-module\",\n \"html\": \"

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

\",\n \"i18nKey\": \"richText.plainText\",\n \"path\": \"@hubspot/rich_text\",\n \"schema_version\": 2\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-0-1-1\",\n \"module_id\": 1155639,\n \"name\": \"module-0-1-1\",\n \"order\": 2,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module-1-1-1\": {\n \"body\": {\n \"align\": \"center\",\n \"css_class\": \"dnd-module\",\n \"font\": {\n \"color\": \"#23496d\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n }\n },\n \"link_font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Helvetica,Arial,sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"path\": \"@hubspot/email_footer\",\n \"schema_version\": 2,\n \"unsubscribe_link_type\": \"both\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-1-1-1\",\n \"module_id\": 2869621,\n \"name\": \"module-1-1-1\",\n \"order\": 3,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module_160676180617911\": {\n \"body\": {\n \"font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"hs_enable_module_padding\": false,\n \"hs_wrapper_css\": {}\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module_160676180617911\",\n \"module_id\": 2794854,\n \"name\": \"module_160676180617911\",\n \"styles\": {},\n \"type\": \"module\"\n },\n \"preview_text\": {\n \"body\": {\n \"value\": \"\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"preview_text\",\n \"label\": \"Preview Text This will be used as the preview text that displays in some email clients\",\n \"name\": \"preview_text\",\n \"order\": 0,\n \"styles\": {},\n \"type\": \"text\"\n }\n }\n },\n \"createdAt\": \"2020-11-30T18:43:17.136Z\",\n \"createdById\": 3739732,\n \"from\": {\n \"fromName\": \"Bruce Wayne\",\n \"replyTo\": \"test@hubspot.com\"\n },\n \"name\": \"My subject\",\n \"publishDate\": \"2023-11-30T18:44:20.387Z\",\n \"sendOnPublish\": true,\n \"state\": \"DRAFT\",\n \"subcategory\": \"batch\",\n \"subject\": \"My subject\",\n \"subscriptionDetails\": {\n \"officeLocationId\": \"5449392956\"\n },\n \"to\": {\n \"contactIds\": {},\n \"contactIlsLists\": {\n \"exclude\": [\n 1\n ],\n \"include\": [\n 5\n ]\n },\n \"suppressGraymail\": true\n },\n \"webversion\": {\n \"expiresAt\": \"2020-11-30T18:44:20.387Z\",\n \"metaDescription\": \"\",\n \"redirectToPageId\": 0,\n \"redirectToUrl\": \"http://www.example.org\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown_getParticipationsBreakdownByMarketingEventId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_event_participations_breakdown", + "description": { + "tagline": "Retrieve participations breakdown for a specific marketing event.", + "detailed": "This tool fetches a detailed breakdown of participations for a specific marketing event identified by marketingEventId. It can be used to analyze participation metrics and insights for a given event." + }, + "return_annotation": "Breakdown of participations for a marketing event.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "hubspot_marketing_event_id" + ], + "description": "The internal id of the marketing event in HubSpot.", + "endpoint_argument_name": "marketingEventId" + }, + { + "name": "contact_identifier", + "alternative_names": [ + "contact_id", + "contact_email" + ], + "description": "The identifier of the Contact. It can be an email or internal ID.", + "endpoint_argument_name": "contactIdentifier" + }, + { + "name": "participation_state", + "alternative_names": [ + "event_participation_status", + "participation_status" + ], + "description": "The participation state filter, which can be REGISTERED, CANCELLED, ATTENDED, or NO_SHOW.", + "endpoint_argument_name": "state" + }, + { + "name": "response_size_limit", + "alternative_names": [ + "max_items_count", + "result_set_size" + ], + "description": "Set the maximum number of records to return. Default is 10, maximum is 100.", + "endpoint_argument_name": "limit" + }, + { + "name": "last_retrieved_position_cursor", + "alternative_names": [ + "pagination_cursor", + "continuation_token" + ], + "description": "The cursor indicating the position of the last retrieved item for pagination.", + "endpoint_argument_name": "after" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown", + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations breakdown by Marketing Event internal identifier", + "description": "Read Marketing event's participations breakdown with optional filters by internal identifier marketingEventId.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "contactIdentifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "description": "The identifier of the Contact. It may be email or internal id.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "state", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "marketingEventId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create_recordByContactIds", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "record_marketing_event_attendance", + "description": { + "tagline": "Record participation of HubSpot contacts in a Marketing Event.", + "detailed": "Use this tool to mark multiple HubSpot contacts as having participated in a specific marketing event. It is useful for updating contact records and timelines when contacts attend an event. The tool supports additional properties like 'joinedAt' and 'leftAt' for the 'attend' state." + }, + "return_annotation": "Confirmation of recorded attendance and timeline event.", + "arguments": [ + { + "name": "external_event_id", + "alternative_names": [ + "event_identifier", + "external_event_identifier" + ], + "description": "The identifier for the marketing event in the external event application.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "new_subscriber_state", + "alternative_names": [ + "contact_subscription_status", + "attendance_status" + ], + "description": "Specifies the new state of the contact in relation to the marketing event, such as 'register', 'attend', or 'cancel'.", + "endpoint_argument_name": "subscriberState" + }, + { + "name": "contact_participation_details", + "alternative_names": [ + "event_subscription_info", + "attendance_data" + ], + "description": "JSON array of contact participation details, including contact ID, properties, and interaction timestamp.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "external_account_id", + "alternative_names": [ + "external_account_identifier", + "event_associated_account_id" + ], + "description": "The ID identifying the account associated with the marketing event in the external application.", + "endpoint_argument_name": "externalAccountId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create", + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by ContactId with Marketing Event External Ids", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their HubSpot contact IDs.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "subscriberState", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + }, + "required": [ + "interactionDateTime" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of HubSpot contacts to subscribe to the marketing event\",\n \"items\": {\n \"required\": [\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"vid\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert_upsertByContactId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "record_hubspot_subscriber_state", + "description": { + "tagline": "Record subscriber state for HubSpot contacts and events.", + "detailed": "Record a subscriber state between multiple HubSpot contacts and a marketing event using HubSpot contact IDs. Note: Contacts must already exist in HubSpot." + }, + "return_annotation": "Confirmation of subscriber state update for a marketing event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "marketing_event_account_id", + "external_event_account_id" + ], + "description": "The account ID associated with this marketing event in the external event application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "event_id_in_external_app", + "alternative_names": [ + "ext_event_id", + "external_app_event_id" + ], + "description": "The ID of the marketing event in the external application.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "subscriber_state", + "alternative_names": [ + "subscription_status", + "event_attendance_status" + ], + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event, such as 'register', 'attend', or 'cancel'.", + "endpoint_argument_name": "subscriberState" + }, + { + "name": "hubspot_contacts_list", + "alternative_names": [ + "contacts_subscription_data", + "marketing_event_contacts" + ], + "description": "A list of contact objects, each with 'vid', 'properties', and 'interactionDateTime' fields.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert", + "tags": [ + "Subscriber State Changes" + ], + "summary": "Record a subscriber state by contact ID", + "description": "Record a subscriber state between multiple HubSpot contacts and a marketing event, using HubSpot contact IDs. Note that the contact must already exist in HubSpot; a contact will not be created.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "subscriberState", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + }, + "required": [ + "interactionDateTime" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of HubSpot contacts to subscribe to the marketing event\",\n \"items\": {\n \"required\": [\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"vid\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/events/{externalEventId}_getDetails", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_event_details", + "description": { + "tagline": "Retrieve details of a specific marketing event.", + "detailed": "Fetches details of a marketing event using its externalEventId. Only events created by the requesting app can be accessed." + }, + "return_annotation": "Details of the specified marketing event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "account_id", + "event_account_id" + ], + "description": "The accountId associated with this marketing event in the external event application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "external_event_identifier" + ], + "description": "The unique identifier of the marketing event in the external application.", + "endpoint_argument_name": "externalEventId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/events/{externalEventId}", + "tags": [ + "Basic" + ], + "summary": "Get Marketing Event by External IDs", + "description": "Returns the details of a Marketing Event with the specified externalAccountId, externalEventId, if it exists.\n\nOnly Marketing Events created by the same app making the request can be retrieved.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/marketing-events/events/{externalEventId}_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_marketing_event", + "description": { + "tagline": "Upsert a marketing event in HubSpot.", + "detailed": "Upserts a marketing event using the provided external event ID. If an event with that ID exists, it updates the event; otherwise, it creates a new one." + }, + "return_annotation": "Confirmation of event upsert operation.", + "arguments": [ + { + "name": "external_event_id", + "alternative_names": [ + "event_id_external", + "external_id_event" + ], + "description": "The ID of the marketing event in the external application. Used to upsert the event in HubSpot.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "marketing_event_details", + "alternative_names": [ + "event_data", + "event_information" + ], + "description": "Details of the marketing event, including start/end times, organizer, and custom properties. JSON format expected.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/marketing-events/events/{externalEventId}", + "tags": [ + "Basic" + ], + "summary": "Create or update a marketing event", + "description": "Upserts a marketing event If there is an existing marketing event with the specified ID, it will be updated; otherwise a new event will be created.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "type": "object", + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "example": "" + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "enum": [ + "none", + "standard", + "high" + ], + "example": "" + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ] + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + }, + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"eventName\",\n \"eventOrganizer\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/marketing-events/events/{externalEventId}_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_marketing_event", + "description": { + "tagline": "Deletes a specified HubSpot marketing event.", + "detailed": "Use this tool to delete an existing marketing event in HubSpot by specifying the externalEventId. The event must have been created by the same app requesting the deletion." + }, + "return_annotation": "Confirmation of the marketing event deletion.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "account_id", + "event_account_id" + ], + "description": "The account ID associated with the marketing event to be deleted in the external event application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "external_event_identifier" + ], + "description": "The ID of the marketing event in the external event application to be deleted.", + "endpoint_argument_name": "externalEventId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/marketing-events/events/{externalEventId}", + "tags": [ + "Basic" + ], + "summary": "Delete Marketing Event by External Ids", + "description": "Deletes the existing Marketing Event with the specified externalAccountId, externalEventId, if it exists.\n\nOnly Marketing Events created by the same app can be deleted.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/marketing/v3/marketing-events/events/{externalEventId}_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_marketing_event_details", + "description": { + "tagline": "Update details of an existing marketing event.", + "detailed": "Use this tool to update the details of an existing marketing event identified by its external event ID. It is applicable only for events created by the same app." + }, + "return_annotation": "Confirmation of the updated marketing event details.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "account_id", + "external_account_identifier" + ], + "description": "The account ID associated with this marketing event in the external event application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "external_event_id", + "alternative_names": [ + "event_id_external", + "external_event_identifier" + ], + "description": "The unique identifier of the marketing event in the external event application.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "marketing_event_details", + "alternative_names": [ + "event_update_payload", + "modified_event_data" + ], + "description": "JSON object containing updated marketing event details like startDateTime, customProperties, eventCancelled, etc.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/marketing/v3/marketing-events/events/{externalEventId}", + "tags": [ + "Basic" + ], + "summary": "Update Marketing Event by External IDs", + "description": "Updates the details of an existing Marketing Event identified by its externalAccountId, externalEventId if it exists.\n\nOnly Marketing Events created by the same app can be updated.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "type": "object", + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "example": "" + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "enum": [ + "none", + "standard", + "high" + ], + "example": "" + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ] + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/events/upsert_upsert", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "upsert_marketing_events", + "description": { + "tagline": "Upsert multiple marketing events in HubSpot.", + "detailed": "Upserts multiple marketing events. Updates existing events with the same ID or creates new ones if they don't exist. Only events created by the same app can be updated." + }, + "return_annotation": "Confirmation of marketing events creation or update.", + "arguments": [ + { + "name": "marketing_event_data", + "alternative_names": [ + "event_upsert_data", + "event_information_payload" + ], + "description": "JSON object containing a list of marketing events with properties like startDateTime, customProperties, eventName, etc. Used to upsert events.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events/upsert", + "tags": [ + "Batch" + ], + "summary": "Create or Update Multiple Marketing Events", + "description": "Upserts multiple Marketing Events. If a Marketing Event with the specified ID already exists, it will be updated; otherwise, a new event will be created.\n\nOnly Marketing Events originally created by the same app can be updated.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "type": "object", + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "example": "" + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "enum": [ + "none", + "standard", + "high" + ], + "example": "" + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ] + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + }, + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"eventName\",\n \"eventOrganizer\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create_recordByContactEmails", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "record_event_participation_hubspot", + "description": { + "tagline": "Record participation of contacts in a HubSpot marketing event.", + "detailed": "Use this tool to record the attendance of HubSpot contacts in a marketing event using their email addresses. It can automatically create contacts if they do not exist and adds a timeline event for them. This is particularly useful for logging who attended or participated in specific marketing events." + }, + "return_annotation": "Confirmation of participation recording in HubSpot.", + "arguments": [ + { + "name": "external_event_id", + "alternative_names": [ + "event_id_external", + "external_marketing_event_id" + ], + "description": "The ID of the marketing event in the external event application.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "subscriber_state", + "alternative_names": [ + "contact_subscriber_state", + "event_subscriber_state" + ], + "description": "The new subscriber state for HubSpot contacts in the specified event. Options: 'register', 'attend', 'cancel'.", + "endpoint_argument_name": "subscriberState" + }, + { + "name": "marketing_event_participation_details", + "alternative_names": [ + "event_attendance_data", + "contact_event_information" + ], + "description": "JSON object containing details of contacts, including email, properties, and interaction date/time for marketing event participation.", + "endpoint_argument_name": "requestBody" + }, + { + "name": "external_account_id", + "alternative_names": [ + "external_acc_id", + "event_account_id" + ], + "description": "The account ID linked to the marketing event in the external event application.", + "endpoint_argument_name": "externalAccountId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create", + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by Email with Marketing Event External Ids", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their email addresses.\n\nIf a contact does not exist, it will be automatically created. The contactProperties field is used exclusively for creating new contacts and will not update properties of existing contacts.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "subscriberState", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + }, + "required": [ + "email", + "interactionDateTime" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of marketing event details to create or update\",\n \"items\": {\n \"required\": [\n \"email\",\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address of the contact in HubSpot to associate with the event.\"\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown_getParticipationsBreakdownByExternalEventId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_event_participation_breakdown", + "description": { + "tagline": "Retrieve the participation breakdown for a marketing event.", + "detailed": "This tool fetches the participation breakdown for a specified marketing event, filtered by externalAccountId and externalEventId. It provides detailed insights on event participation metrics." + }, + "return_annotation": "Participation breakdown for a specified marketing event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "event_account_id", + "marketing_event_account_id" + ], + "description": "The ID associated with the marketing event's account in the external application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "external_event_id", + "alternative_names": [ + "event_id", + "event_identifier" + ], + "description": "The ID of the marketing event in the external event application.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "contact_identifier", + "alternative_names": [ + "contact_id", + "contact_email" + ], + "description": "The unique identifier for the contact, such as an email or internal ID.", + "endpoint_argument_name": "contactIdentifier" + }, + { + "name": "participation_state_filter", + "alternative_names": [ + "event_participation_status", + "participation_status_filter" + ], + "description": "The participation state to filter results. Possible values: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.", + "endpoint_argument_name": "state" + }, + { + "name": "response_size_limit", + "alternative_names": [ + "max_results_limit", + "result_count_cap" + ], + "description": "Maximum number of participations to retrieve. Default is 10, maximum is 100.", + "endpoint_argument_name": "limit" + }, + { + "name": "pagination_cursor", + "alternative_names": [ + "continuation_token", + "next_page_cursor" + ], + "description": "The cursor indicating the position of the last retrieved item, used for pagination.", + "endpoint_argument_name": "after" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown", + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations breakdown by Marketing Event external identifier", + "description": "Read Marketing event's participations breakdown with optional filters by externalAccountId and externalEventId pair.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "contactIdentifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "description": "The identifier of the Contact. It may be email or internal id.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "state", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/{objectId}_getByObjectId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "fetch_event_details", + "description": { + "tagline": "Fetch details of a marketing event by its object ID.", + "detailed": "Use this tool to retrieve detailed information about a specific marketing event by providing its object ID. This can be useful for gaining insights into the event's specifics and managing marketing activities." + }, + "return_annotation": "Details of a specific marketing event by object ID.", + "arguments": [ + { + "name": "marketing_event_object_id", + "alternative_names": [ + "event_id", + "hubspot_event_id" + ], + "description": "The internal ID of the marketing event in HubSpot. Used to fetch specific event details.", + "endpoint_argument_name": "objectId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Get Marketing Event by objectId", + "description": "Returns the details of a Marketing Event with the specified objectId, if it exists.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/marketing-events/{objectId}_archiveByObjectId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_marketing_event", + "description": { + "tagline": "Deletes a specified marketing event by objectId.", + "detailed": "Use this tool to delete an existing marketing event in HubSpot Marketing using its objectId. Call this tool when you need to remove a marketing event from the system." + }, + "return_annotation": "Confirmation of marketing event deletion.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "hubspot_event_id" + ], + "description": "The internal ID of the marketing event to be deleted in HubSpot.", + "endpoint_argument_name": "objectId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/marketing-events/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Delete Marketing Event by objectId", + "description": "Deletes the existing Marketing Event with the specified objectId, if it exists.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "patch-/marketing/v3/marketing-events/{objectId}_updateByObjectId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "modify_event_information", + "description": { + "tagline": "Update details of a specific marketing event.", + "detailed": "Use this tool to update the details of an existing marketing event by providing the object's ID. It confirms whether the update was successful." + }, + "return_annotation": "Confirmation of marketing event details update.", + "arguments": [ + { + "name": "event_internal_id", + "alternative_names": [ + "marketing_event_id", + "event_id" + ], + "description": "The internal ID of the marketing event in HubSpot to be updated.", + "endpoint_argument_name": "objectId" + }, + { + "name": "event_update_details", + "alternative_names": [ + "event_update_data", + "event_modification_details" + ], + "description": "JSON object containing various event details such as start and end date, custom properties, event name, organizer, and more to update the marketing event.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "PATCH", + "path": "/marketing/v3/marketing-events/{objectId}", + "tags": [ + "Basic" + ], + "summary": "Update Marketing Event by objectId", + "description": "Updates the details of an existing Marketing Event identified by its objectId, if it exists.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "type": "object", + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "example": "" + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "enum": [ + "none", + "standard", + "high" + ], + "example": "" + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ] + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "customProperties" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"customProperties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"eventCancelled\": {\n \"type\": \"boolean\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\"\n },\n \"eventUrl\": {\n \"type\": \"string\"\n },\n \"eventDescription\": {\n \"type\": \"string\"\n },\n \"eventName\": {\n \"type\": \"string\"\n },\n \"eventType\": {\n \"type\": \"string\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists_getAllByExternalAccountAndEventIds", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_event_associated_lists", + "description": { + "tagline": "Retrieve lists associated with a specific marketing event.", + "detailed": "Call this tool to get lists associated with a marketing event using external account and event IDs. Useful for accessing participant or attendee lists linked to specific marketing events." + }, + "return_annotation": "Lists associated with the specified marketing event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "external_account_identifier", + "account_id" + ], + "description": "The account ID associated with the marketing event in the external application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "external_event_id", + "alternative_names": [ + "event_id_external", + "marketing_event_id" + ], + "description": "The ID of the marketing event from the external event application.", + "endpoint_argument_name": "externalEventId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists", + "tags": [ + "List Associations" + ], + "summary": "Get lists associated with a marketing event", + "description": "Gets lists associated with a marketing event by external account id and external event id", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/associations/{marketingEventId}/lists_getAllByMarketingEventId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_event_lists", + "description": { + "tagline": "Retrieve lists associated with a specific marketing event.", + "detailed": "This tool fetches all lists associated with a given marketing event using the marketing event ID. It should be called when you need to obtain lists connected to a particular marketing event for analysis or reporting purposes." + }, + "return_annotation": "Lists associated with a specific marketing event.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "marketing_event_identifier" + ], + "description": "The internal ID of the marketing event in HubSpot to retrieve associated lists.", + "endpoint_argument_name": "marketingEventId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/associations/{marketingEventId}/lists", + "tags": [ + "List Associations" + ], + "summary": "Get lists associated with a marketing event", + "description": "Gets lists associated with a marketing event by marketing event id", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "marketingEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create_recordByEmail", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "register_event_participation", + "description": { + "tagline": "Logs event participation for contacts using email addresses.", + "detailed": "Records participation of HubSpot contacts in a marketing event using emails. Automatically creates non-existing contacts and logs the event on their timeline. Applicable for 'attend' state, with optional 'joinedAt' and 'leftAt' properties." + }, + "return_annotation": "Confirms participation logging for contacts in a marketing event.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_internal_id", + "event_id" + ], + "description": "The internal ID of the marketing event in HubSpot. It is required to log participation for contacts.", + "endpoint_argument_name": "objectId" + }, + { + "name": "attendance_state", + "alternative_names": [ + "subscriber_status", + "participation_state" + ], + "description": "The attendance state for the contact in the event. Options: 'register', 'attend', or 'cancel'.", + "endpoint_argument_name": "subscriberState" + }, + { + "name": "event_participation_details", + "alternative_names": [ + "event_details", + "participation_info" + ], + "description": "A JSON object containing an array of marketing event details for each contact. Includes 'email', 'interactionDateTime', and optional 'contactProperties'.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create", + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by Email with Marketing Event Object Id", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their email addresses.\n\nIf a contact does not exist, it will be automatically created. The contactProperties field is used exclusively for creating new contacts and will not update properties of existing contacts.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "subscriberState", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'" + }, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + }, + "required": [ + "email", + "interactionDateTime" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of marketing event details to create or update\",\n \"items\": {\n \"required\": [\n \"email\",\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address of the contact in HubSpot to associate with the event.\"\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_all_marketing_events", + "description": { + "tagline": "Retrieve all marketing events from the portal.", + "detailed": "This tool fetches all available marketing events, including manually created ones and those generated through the application. The events are sorted by objectId." + }, + "return_annotation": "A list of all marketing events with their properties.", + "arguments": [ + { + "name": "cursor_position_after", + "alternative_names": [ + "pagination_cursor", + "next_page_cursor" + ], + "description": "The cursor indicating the position of the last retrieved item for pagination purposes.", + "endpoint_argument_name": "after" + }, + { + "name": "response_limit", + "alternative_names": [ + "max_items", + "result_count" + ], + "description": "Sets the maximum number of marketing events to retrieve, between 10 and 100.", + "endpoint_argument_name": "limit" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/", + "tags": [ + "Basic" + ], + "summary": "Get all marketing event", + "description": "Returns all Marketing Events available on the portal, along with their properties, regardless of whether they were created manually or through the application.\n\nThe marketing events returned by this endpoint are sorted by objectId.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create_recordByContactId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "record_event_attendance", + "description": { + "tagline": "Record participation of HubSpot contacts in a marketing event.", + "detailed": "Use this tool to record the attendance of multiple HubSpot contacts at a marketing event using their HubSpot contact IDs. This also adds a timeline event to each contact's record. The tool is applicable for the \"attend\" state with optional properties like \"joinedAt\" and \"leftAt\"." + }, + "return_annotation": "Confirms recording of contacts' participation in an event.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_internal_id", + "hubspot_event_id" + ], + "description": "The internal ID of the marketing event in HubSpot for which attendance is being recorded.", + "endpoint_argument_name": "objectId" + }, + { + "name": "attendance_state", + "alternative_names": [ + "participation_status", + "event_attendance_status" + ], + "description": "Specifies the attendance state of the contact: 'register', 'attend', or 'cancel'.", + "endpoint_argument_name": "subscriberState" + }, + { + "name": "contact_participation_details", + "alternative_names": [ + "contact_event_records", + "contact_event_entries" + ], + "description": "A list of contact details, including ID, properties, and interaction time, for recording event attendance.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create", + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by ContactId with Marketing Event Object Id", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their HubSpot contact IDs.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "objectId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot" + }, + "description": "The internal id of the marketing event in HubSpot", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "subscriberState", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'" + }, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + }, + "required": [ + "interactionDateTime" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of HubSpot contacts to subscribe to the marketing event\",\n \"items\": {\n \"required\": [\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"vid\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/batch/update_updateByObjectId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "update_marketing_events_batch", + "description": { + "tagline": "Update multiple marketing events by objectId.", + "detailed": "This tool updates multiple marketing events in the HubSpot portal based on their objectId, if they exist. It should be called when you need to batch update event details efficiently." + }, + "return_annotation": "Confirmation of updated marketing events.", + "arguments": [ + { + "name": "marketing_events_update_details", + "alternative_names": [ + "batch_event_update_payload", + "marketing_events_payload" + ], + "description": "JSON object containing details for each marketing event to update. Includes properties like `objectId`, `eventName`, `eventType`, `eventUrl`, and custom properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/batch/update", + "tags": [ + "Batch" + ], + "summary": "Update Multiple Marketing Events by ObjectId", + "description": "Updates multiple Marketing Events on the portal based on their objectId, if they exist.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "type": "object", + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "example": "" + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "enum": [ + "none", + "standard", + "high" + ], + "example": "" + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ] + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + }, + "required": [ + "customProperties", + "objectId" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"customProperties\",\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"eventCancelled\": {\n \"type\": \"boolean\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\"\n },\n \"eventUrl\": {\n \"type\": \"string\"\n },\n \"eventDescription\": {\n \"type\": \"string\"\n },\n \"eventName\": {\n \"type\": \"string\"\n },\n \"eventType\": {\n \"type\": \"string\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"objectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/batch/archive_archiveByObjectId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_marketing_events", + "description": { + "tagline": "Delete multiple marketing events by object ID.", + "detailed": "This tool deletes specified marketing events based on their object IDs. Use it to clean up events from the portal. It returns a status indicating whether all or only some events were successfully deleted." + }, + "return_annotation": "Batch deletion status of marketing events.", + "arguments": [ + { + "name": "marketing_event_object_ids", + "alternative_names": [ + "event_ids", + "object_ids" + ], + "description": "A list of object IDs representing the marketing events to be deleted.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/batch/archive", + "tags": [ + "Batch" + ], + "summary": "Delete Multiple Marketing Events by ObjectId", + "description": "Deletes multiple Marketing Events from the portal based on their objectId, if they exist.\n\nResponses:\n204: Returned if all specified Marketing Events were successfully deleted.\n207: Returned if some objectIds did not correspond to any existing Marketing Events.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "objectId": { + "type": "string" + } + }, + "required": [ + "objectId" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}_getParticipationsCountersByEventExternalId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_event_participation_counters", + "description": { + "tagline": "Retrieve participation counters for a specific marketing event.", + "detailed": "This tool fetches participation metrics for a marketing event using the externalAccountId and externalEventId. It should be called when you need detailed participation statistics for a specific event in HubSpot's marketing platform." + }, + "return_annotation": "Marketing event participation counters.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "external_account_identifier", + "external_account_key" + ], + "description": "The account ID associated with the marketing event in the external application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "event_id", + "alternative_names": [ + "marketing_event_id", + "external_event_identifier" + ], + "description": "The unique identifier for the marketing event in the external application. Required to retrieve participation data.", + "endpoint_argument_name": "externalEventId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}", + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations counters by Marketing Event external identifier", + "description": "Read Marketing event's participations counters by externalAccountId and externalEventId pair.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/{externalEventId}/identifiers_searchPortalEvents", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "search_marketing_events_by_external_id", + "description": { + "tagline": "Search for marketing events by external ID.", + "detailed": "This tool retrieves all marketing events whose externalEventId matches the provided value. It returns object IDs and additional details for each matching event. Useful for finding all marketing events linked to a specific external ID after creation." + }, + "return_annotation": "Details and object IDs of marketing events matching the external ID.", + "arguments": [ + { + "name": "external_event_id", + "alternative_names": [ + "external_id", + "event_external_id" + ], + "description": "The ID of the marketing event in the external event application used to search for matching events.", + "endpoint_argument_name": "externalEventId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/{externalEventId}/identifiers", + "tags": [ + "Identifiers" + ], + "summary": "Find Marketing Events by External Event Id", + "description": "This endpoint searches the portal for all Marketing Events whose externalEventId matches the value provided in the request.\n\nIt retrieves the objectId and additional event details for each matching Marketing Event.\n\nSince multiple Marketing Events can have the same externalEventId, the endpoint returns all matching results.\n\nNote: Marketing Events become searchable by externalEventId a few minutes after creation.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/participations/{marketingEventId}_getParticipationsCountersByMarketingEventId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_marketing_event_participation_counters", + "description": { + "tagline": "Retrieve participation counters for a marketing event.", + "detailed": "This tool fetches the participation statistics for a specified marketing event using its internal identifier." + }, + "return_annotation": "Participation counters for a specified marketing event.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id_hubspot", + "hubspot_marketing_event_id" + ], + "description": "The internal ID of the marketing event in HubSpot, required to fetch participation counters.", + "endpoint_argument_name": "marketingEventId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/participations/{marketingEventId}", + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations counters by Marketing Event internal identifier", + "description": "Read Marketing event's participations counters by internal identifier marketingEventId.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "marketingEventId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int64" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/events/delete_archive", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "remove_marketing_events", + "description": { + "tagline": "Delete multiple HubSpot marketing events by specific IDs.", + "detailed": "This tool deletes multiple HubSpot marketing events based on provided external account, event, and app IDs. It is used to remove events created by the calling app, ensuring events from other apps remain unaffected." + }, + "return_annotation": "Confirmation of deleted marketing events.", + "arguments": [ + { + "name": "event_deletion_requests", + "alternative_names": [ + "event_deletion_inputs", + "events_to_delete" + ], + "description": "A JSON array containing objects with 'externalAccountId', 'externalEventId', and 'appId'. These objects specify the marketing events to delete.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events/delete", + "tags": [ + "Batch" + ], + "summary": "Delete Multiple Marketing Events by External Ids", + "description": "Deletes multiple Marketing Events based on externalAccountId, externalEventId, and appId.\n\nOnly Marketing Events created by the same apps will be deleted; events from other apps cannot be removed by this endpoint. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "appId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the application that created the marketing event in HubSpot." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "appId": { + "type": "integer", + "description": "The id of the application that created the marketing event in HubSpot.", + "format": "int32" + } + }, + "required": [ + "appId", + "externalAccountId", + "externalEventId" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"appId\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"appId\": {\n \"type\": \"integer\",\n \"description\": \"The id of the application that created the marketing event in HubSpot.\",\n \"format\": \"int32\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/events/{externalEventId}/cancel_cancel", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "cancel_marketing_event", + "description": { + "tagline": "Cancel a HubSpot marketing event.", + "detailed": "Use this tool to mark a specific HubSpot marketing event as cancelled by providing the external event ID." + }, + "return_annotation": "Confirmation of event cancellation.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "event_account_id", + "associated_account_id" + ], + "description": "The account ID associated with the marketing event in the external event application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "external_event_id", + "alternative_names": [ + "event_id", + "marketing_event_id" + ], + "description": "The ID of the marketing event in the external event application. Required to identify the event to be cancelled.", + "endpoint_argument_name": "externalEventId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events/{externalEventId}/cancel", + "tags": [ + "Change property" + ], + "summary": "Mark a marketing event as cancelled", + "description": "Mark a marketing event as cancelled.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_associateByMarketingEventId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "associate_list_with_marketing_event", + "description": { + "tagline": "Associate a list with a marketing event by their IDs.", + "detailed": "This tool associates a specific list with a marketing event using the marketing event ID and the list ID. It is used when you need to connect a list of contacts to a marketing event for tracking and management purposes." + }, + "return_annotation": "Confirmation of list association with marketing event.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "hubspot_event_id" + ], + "description": "The internal ID of the marketing event in HubSpot for association.", + "endpoint_argument_name": "marketingEventId" + }, + { + "name": "list_id", + "alternative_names": [ + "list_identifier", + "ils_list_id" + ], + "description": "The ILS ID of the list to associate with the marketing event.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}", + "tags": [ + "List Associations" + ], + "summary": "Associate a list with a marketing event", + "description": "Associates a list with a marketing event by marketing event id and ILS list id", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "marketingEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "description": "The ILS ID of the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_disassociateByMarketingEventId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "disassociate_list_from_marketing_event", + "description": { + "tagline": "Disassociate a list from a marketing event using event and list IDs.", + "detailed": "Use this tool to remove the association between a specific list and a marketing event by providing the marketing event ID and the list ID. It ensures that the list is no longer linked to the specified marketing event." + }, + "return_annotation": "Confirmation of the disassociation action.", + "arguments": [ + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "hubspot_event_id" + ], + "description": "The internal ID of the marketing event in HubSpot to disassociate the list from.", + "endpoint_argument_name": "marketingEventId" + }, + { + "name": "list_identifier", + "alternative_names": [ + "ils_list_id", + "list_id" + ], + "description": "The ILS ID of the list to be disassociated from the marketing event.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}", + "tags": [ + "List Associations" + ], + "summary": "Disassociate a list from a marketing event", + "description": "Disassociates a list from a marketing event by marketing event id and ILS list id", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "marketingEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "description": "The ILS ID of the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert_upsertByContactEmail", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "record_subscriber_state", + "description": { + "tagline": "Record a subscriber's state for a marketing event using email.", + "detailed": "This tool records the subscriber state of a HubSpot contact in relation to a specific marketing event using the contact's email. Note: the contact must already exist in HubSpot." + }, + "return_annotation": "Confirmation of subscriber state update for a marketing event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "marketing_event_account_id", + "external_event_account_id" + ], + "description": "The account ID linked to the marketing event in the external application, required for identifying events.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "alternative_names": [ + "external_event_id", + "event_identifier" + ], + "description": "The unique identifier for the marketing event in the external application. Required to record subscriber state.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "subscriber_state", + "alternative_names": [ + "new_subscriber_status", + "contact_event_status" + ], + "description": "The new subscriber state for a HubSpot contact in the specified marketing event. Options include 'register', 'attend', or 'cancel'.", + "endpoint_argument_name": "subscriberState" + }, + { + "name": "marketing_event_details", + "alternative_names": [ + "event_subscriber_details", + "contact_event_data" + ], + "description": "A list of details including contact email, properties, and timestamp for marketing event subscription updates.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert", + "tags": [ + "Subscriber State Changes" + ], + "summary": "Record a subscriber state by contact email", + "description": "Record a subscriber state between multiple HubSpot contacts and a marketing event, using contact email addresses. Note that the contact must already exist in HubSpot; a contact will not be created. The contactProperties field is used only when creating a new contact. These properties will not update existing contacts. ", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "description": "The id of the marketing event in the external event application", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "subscriberState", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "properties": {}, + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + }, + "required": [ + "email", + "interactionDateTime" + ] + } + } + }, + "required": [ + "inputs" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of marketing event details to create or update\",\n \"items\": {\n \"required\": [\n \"email\",\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address of the contact in HubSpot to associate with the event.\"\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "put-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_associateByExternalAccountAndEventIds", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "link_list_to_event", + "description": { + "tagline": "Associates a marketing list with an event in HubSpot.", + "detailed": "This tool associates a list with a marketing event using the external account ID, external event ID, and ILS list ID. It should be called when you need to link a specific list to a marketing event for tracking or organizational purposes." + }, + "return_annotation": "Confirmation of list association with a marketing event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "account_id_for_event", + "external_id_for_marketing_event" + ], + "description": "The account ID associated with the marketing event in the external event application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "external_event_id", + "alternative_names": [ + "event_id_external", + "external_event_identifier" + ], + "description": "The ID of the marketing event in the external event application. Used to specify which event to associate with the list.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "ils_list_id", + "alternative_names": [ + "list_id", + "ils_id" + ], + "description": "The ILS ID of the list to associate with the marketing event.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "PUT", + "path": "/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}", + "tags": [ + "List Associations" + ], + "summary": "Associate a list with a marketing event", + "description": "Associates a list with a marketing event by external account id, external event id, and ILS list id", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "description": "The ILS ID of the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_disassociateByExternalAccountAndEventIds", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "disassociate_marketing_event_list", + "description": { + "tagline": "Disassociate a list from a HubSpot marketing event using IDs.", + "detailed": "Use this tool to disassociate a list from a specific marketing event in HubSpot by providing the external account ID, external event ID, and list ID. This action is useful when you need to update or manage your marketing event associations." + }, + "return_annotation": "Confirmation of the disassociation of the list from the event.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "external_account_identifier", + "account_id_for_event" + ], + "description": "The account ID linked to the marketing event in the external application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id", + "external_event_id" + ], + "description": "ID of the marketing event in the external application to be disassociated.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "list_id", + "alternative_names": [ + "ils_list_id", + "list_identifier" + ], + "description": "The ILS ID of the list to be disassociated from the marketing event.", + "endpoint_argument_name": "listId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}", + "tags": [ + "List Associations" + ], + "summary": "Disassociate a list from a marketing event", + "description": "Disassociates a list from a marketing event by external account id, external event id, and ILS list id", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "listId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "description": "The ILS ID of the list.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/events/{externalEventId}/complete_complete", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "mark_marketing_event_completed", + "description": { + "tagline": "Mark a marketing event as completed in HubSpot.", + "detailed": "Use this tool to mark a marketing event as completed in HubSpot, identified by its externalEventId. This confirms that the specified event has been finalized." + }, + "return_annotation": "Confirmation of event marked as completed.", + "arguments": [ + { + "name": "external_account_id", + "alternative_names": [ + "external_account_identifier", + "account_id_external_event" + ], + "description": "The account ID associated with the marketing event in the external application.", + "endpoint_argument_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "alternative_names": [ + "event_id_external", + "external_event_id" + ], + "description": "The unique ID of the marketing event in the external event application.", + "endpoint_argument_name": "externalEventId" + }, + { + "name": "event_start_date_time", + "alternative_names": [ + "start_time_of_event", + "initial_date_time_event" + ], + "description": "The start date and time of the marketing event, formatted as an ISO 8601 string.", + "endpoint_argument_name": "startDateTime" + }, + { + "name": "event_end_datetime", + "alternative_names": [ + "end_time_of_event", + "event_completion_time" + ], + "description": "The date and time when the marketing event ended. Expected in ISO 8601 format.", + "endpoint_argument_name": "endDateTime" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events/{externalEventId}/complete", + "tags": [ + "Change property" + ], + "summary": "Mark a marketing event as completed", + "description": "Mark a marketing event as completed", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "externalAccountId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "externalEventId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "description": "The id of the marketing event in the external event application.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "startDateTime", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "format": "date-time" + }, + "schema_required": true + }, + { + "name": "endDateTime", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "format": "date-time" + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"endDateTime\",\n \"startDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/marketing/v3/marketing-events/events_create", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_marketing_event", + "description": { + "tagline": "Create a new marketing event in HubSpot.", + "detailed": "This tool is used to create a new marketing event within the HubSpot platform. It should be called when a new event needs to be added to HubSpot's marketing event system." + }, + "return_annotation": "Confirmation of marketing event creation.", + "arguments": [ + { + "name": "marketing_event_details", + "alternative_names": [ + "event_details", + "event_data" + ], + "description": "A JSON object containing all the details for the marketing event, including start and end times, event name, description, organizer, external event IDs, and custom properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/marketing-events/events", + "tags": [ + "Basic" + ], + "summary": "Create a marketing event", + "description": "Creates a new marketing event in HubSpot", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.write" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "type": "object", + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "example": "" + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "enum": [ + "none", + "standard", + "high" + ], + "example": "" + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ] + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + }, + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"eventName\",\n \"eventOrganizer\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown_getParticipationsBreakdownByContactId", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_contact_participations_breakdown", + "description": { + "tagline": "Retrieve a contact's event participation details by ID or email.", + "detailed": "This tool retrieves participation details for a specific contact in marketing events using their email or internal ID. It is useful for analyzing a contact's engagement in various events." + }, + "return_annotation": "Contact's event participation details.", + "arguments": [ + { + "name": "contact_identifier", + "alternative_names": [ + "contact_id", + "contact_email_id" + ], + "description": "The identifier of the contact, which can be either an email or an internal ID.", + "endpoint_argument_name": "contactIdentifier" + }, + { + "name": "participation_state", + "alternative_names": [ + "state_of_participation", + "event_participation_status" + ], + "description": "The participation state for the contact. Options: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.", + "endpoint_argument_name": "state" + }, + { + "name": "response_size_limit", + "alternative_names": [ + "max_response_items", + "result_size" + ], + "description": "Specify the maximum number of participation records to return. The default is 10, and the maximum is 100.", + "endpoint_argument_name": "limit" + }, + { + "name": "pagination_cursor", + "alternative_names": [ + "next_item_cursor", + "result_pointer" + ], + "description": "Cursor for the last retrieved item to manage pagination.", + "endpoint_argument_name": "after" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown", + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations breakdown by Contact identifier", + "description": "Read Contact's participations by identifier - email or internal id.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "state", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "deprecated": false, + "default": 10, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [ + { + "name": "contactIdentifier", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "description": "The identifier of the Contact. It may be email or internal id.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/{appId}/settings_getAll", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "GET", + "path": "/marketing/v3/marketing-events/{appId}/settings", + "tags": [ + "Settings" + ], + "summary": "Retrieve the application settings", + "description": "Retrieve the current settings for the application.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the application to retrieve the settings for." + }, + "description": "The id of the application to retrieve the settings for.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/marketing-events/{appId}/settings_update", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": false, + "should_skip": true, + "skip_reason": "Security scheme 'oauth2' not available. Available: [['developer_hapikey']]", + "wrapper_tool": null, + "method": "POST", + "path": "/marketing/v3/marketing-events/{appId}/settings", + "tags": [ + "Settings" + ], + "summary": "Update the application settings", + "description": "Create or update the current settings for the application.", + "requires_security": true, + "oauth_scopes": [], + "security_schemes": [ + "developer_hapikey" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "appId", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the application to update the settings for." + }, + "description": "The id of the application to update the settings for.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "eventDetailsUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The url that will be used to fetch marketing event details by id. Must contain a `%s` character sequence that will be substituted with the event id. For example: `https://my.event.app/events/%s`" + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "properties": { + "eventDetailsUrl": { + "type": "string", + "description": "The url that will be used to fetch marketing event details by id. Must contain a `%s` character sequence that will be substituted with the event id. For example: `https://my.event.app/events/%s`" + } + }, + "required": [ + "eventDetailsUrl" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/marketing-events/events/search_doSearch", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "find_hubspot_marketing_events", + "description": { + "tagline": "Fetch HubSpot marketing events by externalEventId.", + "detailed": "Use this tool to retrieve marketing events from HubSpot where the externalEventId matches the given request parameter. It only returns events created by the app making the request, excluding those made by other apps." + }, + "return_annotation": "Details of marketing events matching the specified ID.", + "arguments": [ + { + "name": "external_event_id", + "alternative_names": [ + "event_id", + "marketing_event_id" + ], + "description": "The ID of the marketing event in the external application (externalEventId) to search for.", + "endpoint_argument_name": "q" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/marketing-events/events/search", + "tags": [ + "Identifiers" + ], + "summary": "Find App-Specific Marketing Events by External Event Id", + "description": "Retrieves Marketing Events where the externalEventId matches the value provided in the request, limited to events created by the app making the request.\n\nMarketing Events created by other apps will not be included in the results.", + "requires_security": true, + "oauth_scopes": [ + "crm.objects.marketing_events.read" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "q", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application (externalEventId)" + }, + "description": "The id of the marketing event in the external event application (externalEventId)", + "required": true, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v4/email/single-send", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "send_marketing_email", + "description": { + "tagline": "Send a template email to a specific recipient.", + "detailed": "This tool sends a marketing email using a predefined template to a specified recipient via HubSpot. It's useful for automating email campaigns and reaching target audiences efficiently." + }, + "return_annotation": "Confirmation of email being sent successfully.", + "arguments": [ + { + "name": "email_content_data", + "alternative_names": [ + "email_request_body", + "payload_for_email" + ], + "description": "A JSON object containing email ID, message details, custom properties, and contact properties for sending a marketing email.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v4/email/single-send", + "tags": [ + "Single_Send" + ], + "summary": "Send an email", + "description": "Send a template email to a specific recipient.", + "requires_security": true, + "oauth_scopes": [ + "marketing-email", + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The content ID for the email, which can be found in email tool UI." + }, + "message": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Cc." + }, + "sendId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Bcc." + }, + "replyTo": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of Reply-To header values for the email." + }, + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The From header for the email." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The recipient of the email." + } + }, + "inner_properties": null, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "inner_properties": null, + "description": "" + }, + "description": "", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "A request to send a single email asynchronously.", + "properties": { + "customProperties": { + "type": "object", + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "emailId": { + "type": "integer", + "description": "The content ID for the email, which can be found in email tool UI.", + "format": "int64" + }, + "message": { + "type": "object", + "description": "A JSON object containing anything you want to override.", + "properties": { + "cc": { + "type": "array", + "description": "List of email addresses to send as Cc.", + "items": { + "type": "string" + } + }, + "sendId": { + "type": "string", + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "type": "array", + "description": "List of email addresses to send as Bcc.", + "items": { + "type": "string" + } + }, + "replyTo": { + "type": "array", + "description": "List of Reply-To header values for the email.", + "items": { + "type": "string" + } + }, + "from": { + "type": "string", + "description": "The From header for the email." + }, + "to": { + "type": "string", + "description": "The recipient of the email." + } + }, + "required": [ + "to" + ] + }, + "contactProperties": { + "type": "object", + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "emailId", + "message" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"emailId\",\n \"message\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"customProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.\"\n },\n \"emailId\": {\n \"type\": \"integer\",\n \"description\": \"The content ID for the email, which can be found in email tool UI.\",\n \"format\": \"int64\"\n },\n \"message\": {\n \"required\": [\n \"to\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"cc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Cc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sendId\": {\n \"type\": \"string\",\n \"description\": \"ID for a particular send. No more than one email will be sent per sendId.\"\n },\n \"bcc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Bcc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"replyTo\": {\n \"type\": \"array\",\n \"description\": \"List of Reply-To header values for the email.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"from\": {\n \"type\": \"string\",\n \"description\": \"The From header for the email.\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"The recipient of the email.\"\n }\n },\n \"description\": \"A JSON object containing anything you want to override.\"\n },\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.\"\n }\n },\n \"description\": \"A request to send a single email asynchronously.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/transactional/single-email/send_sendEmail", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "send_transactional_email", + "description": { + "tagline": "Send a transactional email asynchronously.", + "detailed": "Use this tool to send a transactional email asynchronously and obtain the status of the email send with a statusId, which can be queried further using the Email Send Status API." + }, + "return_annotation": "Status of the sent transactional email with statusId.", + "arguments": [ + { + "name": "email_request_details", + "alternative_names": [ + "transactional_email_details", + "email_send_parameters" + ], + "description": "A JSON object detailing the email to send, including custom properties, email ID, message content, and contact properties.", + "endpoint_argument_name": "requestBody" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/transactional/single-email/send", + "tags": [ + "Single send" + ], + "summary": "Send a single transactional email asynchronously.", + "description": "Asynchronously send a transactional email. Returns the status of the email send with a statusId that can be used to continuously query for the status using the Email Send Status API.", + "requires_security": true, + "oauth_scopes": [ + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "requestBody", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The content ID for the transactional email, which can be found in email tool UI." + }, + "message": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Cc." + }, + "sendId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Bcc." + }, + "replyTo": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of Reply-To header values for the email." + }, + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The From header for the email." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The recipient of the email." + } + }, + "inner_properties": null, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "inner_properties": null, + "description": "A request object describing the email to send." + }, + "description": "A request object describing the email to send.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "object", + "description": "A request to send a single transactional email asynchronously.", + "properties": { + "customProperties": { + "type": "object", + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.", + "properties": {}, + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "emailId": { + "type": "integer", + "description": "The content ID for the transactional email, which can be found in email tool UI.", + "format": "int32" + }, + "message": { + "type": "object", + "description": "A JSON object containing anything you want to override.", + "properties": { + "cc": { + "type": "array", + "description": "List of email addresses to send as Cc.", + "items": { + "type": "string" + } + }, + "sendId": { + "type": "string", + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "type": "array", + "description": "List of email addresses to send as Bcc.", + "items": { + "type": "string" + } + }, + "replyTo": { + "type": "array", + "description": "List of Reply-To header values for the email.", + "items": { + "type": "string" + } + }, + "from": { + "type": "string", + "description": "The From header for the email." + }, + "to": { + "type": "string", + "description": "The recipient of the email." + } + }, + "required": [ + "to" + ] + }, + "contactProperties": { + "type": "object", + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.", + "properties": {}, + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "emailId", + "message" + ] + }, + "schema_required": false + } + ] + }, + "request_body_spec": "{\n \"description\": \"A request object describing the email to send.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"emailId\",\n \"message\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"customProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.\"\n },\n \"emailId\": {\n \"type\": \"integer\",\n \"description\": \"The content ID for the transactional email, which can be found in email tool UI.\",\n \"format\": \"int32\"\n },\n \"message\": {\n \"required\": [\n \"to\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"cc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Cc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sendId\": {\n \"type\": \"string\",\n \"description\": \"ID for a particular send. No more than one email will be sent per sendId.\"\n },\n \"bcc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Bcc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"replyTo\": {\n \"type\": \"array\",\n \"description\": \"List of Reply-To header values for the email.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"from\": {\n \"type\": \"string\",\n \"description\": \"The From header for the email.\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"The recipient of the email.\"\n }\n },\n \"description\": \"A JSON object containing anything you want to override.\"\n },\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.\"\n }\n },\n \"description\": \"A request to send a single transactional email asynchronously.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/transactional/smtp-tokens_getTokensPage", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "query_smtp_tokens", + "description": { + "tagline": "Retrieve SMTP API tokens by campaign name or emailCampaignId.", + "detailed": "Use this tool to query multiple SMTP API tokens associated with a campaign by its name, or to retrieve a single token using an emailCampaignId. This is useful for managing email campaigns and accessing specific token information." + }, + "return_annotation": "SMTP API tokens queried by campaign name or ID.", + "arguments": [ + { + "name": "campaign_name", + "alternative_names": [ + "smtp_campaign_name", + "smtp_marketing_campaign" + ], + "description": "Name of the campaign tied to the SMTP API token to query tokens.", + "endpoint_argument_name": "campaignName" + }, + { + "name": "email_campaign_id", + "alternative_names": [ + "campaign_id_email", + "campaign_identifier" + ], + "description": "Identifier assigned to the campaign provided during the token creation. Used to retrieve a specific SMTP API token.", + "endpoint_argument_name": "emailCampaignId" + }, + { + "name": "result_pagination_start", + "alternative_names": [ + "pagination_start_point", + "next_results_start" + ], + "description": "Specify a starting point for retrieving the next set of results. Use this for paginating through results.", + "endpoint_argument_name": "after" + }, + { + "name": "maximum_tokens_to_return", + "alternative_names": [ + "max_tokens_returned", + "token_return_limit" + ], + "description": "Specify the maximum number of SMTP API tokens to return in the response.", + "endpoint_argument_name": "limit" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/transactional/smtp-tokens", + "tags": [ + "Public SMTP tokens" + ], + "summary": "Query SMTP API tokens by campaign name or an emailCampaignId.", + "description": "Query multiple SMTP API tokens by campaign name or a single token by emailCampaignId.", + "requires_security": true, + "oauth_scopes": [ + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [ + { + "name": "campaignName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A name for the campaign tied to the SMTP API token." + }, + "description": "A name for the campaign tied to the SMTP API token.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "emailCampaignId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier assigned to the campaign provided during the token creation." + }, + "description": "Identifier assigned to the campaign provided during the token creation.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "after", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Starting point to get the next set of results." + }, + "description": "Starting point to get the next set of results.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + }, + { + "name": "limit", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Maximum number of tokens to return." + }, + "description": "Maximum number of tokens to return.", + "required": false, + "deprecated": false, + "default": null, + "location": "query", + "content_type": null, + "json_schema": { + "type": "integer", + "format": "int32" + }, + "schema_required": false + } + ], + "path": [], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "post-/marketing/v3/transactional/smtp-tokens_createToken", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "create_smtp_api_token", + "description": { + "tagline": "Creates a SMTP API token for transaction emails.", + "detailed": "This tool is used to create a new SMTP API token for sending transactional emails through HubSpot's marketing service. It should be called when a new token is needed for email operations." + }, + "return_annotation": "SMTP API token creation confirmation.", + "arguments": [ + { + "name": "campaign_name", + "alternative_names": [ + "smtp_campaign_name", + "token_campaign_name" + ], + "description": "The name of the campaign associated with the SMTP API token.", + "endpoint_argument_name": "campaignName" + }, + { + "name": "create_contact_for_recipients", + "alternative_names": [ + "include_contact_creation", + "contact_creation_option" + ], + "description": "Indicates whether a contact should be created for email recipients. Set to true to create a contact.", + "endpoint_argument_name": "createContact" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/transactional/smtp-tokens", + "tags": [ + "Public SMTP tokens" + ], + "summary": "Create a SMTP API token.", + "description": "Create a SMTP API token.", + "requires_security": true, + "oauth_scopes": [ + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [], + "header": [], + "cookie": [], + "body": [ + { + "name": "createContact", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates whether a contact should be created for email recipients." + }, + "description": "Indicates whether a contact should be created for email recipients.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "schema_required": true + }, + { + "name": "campaignName", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A name for the campaign tied to the SMTP API token." + }, + "description": "A name for the campaign tied to the SMTP API token.", + "required": true, + "deprecated": false, + "default": null, + "location": "body", + "content_type": "application/json", + "json_schema": { + "type": "string", + "description": "A name for the campaign tied to the SMTP API token." + }, + "schema_required": true + } + ] + }, + "request_body_spec": "{\n \"description\": \"A request object that includes the campaign name tied to the token and whether contacts should be created for email recipients.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"campaignName\",\n \"createContact\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createContact\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates whether a contact should be created for email recipients.\"\n },\n \"campaignName\": {\n \"type\": \"string\",\n \"description\": \"A name for the campaign tied to the SMTP API token.\"\n }\n },\n \"description\": \"A request object to create a SMTP API token\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": true + }, + { + "name": "post-/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset_resetPassword", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "reset_password_for_token", + "description": { + "tagline": "Resets the password for a specified token.", + "detailed": "This tool allows you to create a new password for a specified token, invalidating the old password. Use it when you need to reset the password associated with a specific SMTP token in HubSpot's marketing system." + }, + "return_annotation": "Confirmation of password reset for the token.", + "arguments": [ + { + "name": "token_identifier", + "alternative_names": [ + "token_id", + "token_key" + ], + "description": "The unique string identifier for the token, used to reset its password.", + "endpoint_argument_name": "tokenId" + } + ] + }, + "method": "POST", + "path": "/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset", + "tags": [ + "Public SMTP tokens" + ], + "summary": "Reset the password of an existing token.", + "description": "Allows the creation of a replacement password for a given token. Once the password is successfully reset, the old password for the token will be invalid.", + "requires_security": true, + "oauth_scopes": [ + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "tokenId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "description": "Identifier generated when a token is created.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "get-/marketing/v3/transactional/smtp-tokens/{tokenId}_getTokenById", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "get_smtp_token_by_id", + "description": { + "tagline": "Retrieve details of an SMTP token using its ID.", + "detailed": "This tool is used to query a specific SMTP token by its ID within the HubSpot Marketing platform. Call this tool when you need to access detailed information about a particular SMTP transactional token." + }, + "return_annotation": "Details of the SMTP token queried by ID.", + "arguments": [ + { + "name": "smtp_token_id", + "alternative_names": [ + "token_identifier", + "token_id" + ], + "description": "The unique identifier of the SMTP token to be queried.", + "endpoint_argument_name": "tokenId" + } + ] + }, + "method": "GET", + "path": "/marketing/v3/transactional/smtp-tokens/{tokenId}", + "tags": [ + "Public SMTP tokens" + ], + "summary": "Query a single token by ID.", + "description": "Query a single token by ID.", + "requires_security": true, + "oauth_scopes": [ + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "tokenId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "description": "Identifier generated when a token is created.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + }, + { + "name": "delete-/marketing/v3/transactional/smtp-tokens/{tokenId}_archiveToken", + "selected_for_wrapping": false, + "spec_built": true, + "wrap_finished": true, + "should_skip": false, + "skip_reason": null, + "wrapper_tool": { + "name": "delete_smtp_token", + "description": { + "tagline": "Delete an SMTP token by ID in HubSpot Marketing.", + "detailed": "Use this tool to delete a specific SMTP token from HubSpot Marketing by providing the token ID. This is useful for managing and revoking access tokens when they are no longer needed or for security reasons." + }, + "return_annotation": "Confirmation of token deletion.", + "arguments": [ + { + "name": "smtp_token_id", + "alternative_names": [ + "smtp_token_identifier", + "smtp_token_key" + ], + "description": "The unique identifier of the SMTP token to be deleted, provided during token creation.", + "endpoint_argument_name": "tokenId" + } + ] + }, + "method": "DELETE", + "path": "/marketing/v3/transactional/smtp-tokens/{tokenId}", + "tags": [ + "Public SMTP tokens" + ], + "summary": "Delete a single token by ID.", + "description": "Delete a single token by ID.", + "requires_security": true, + "oauth_scopes": [ + "transactional-email" + ], + "security_schemes": [ + "oauth2", + "private_apps" + ], + "parameters": { + "query": [], + "path": [ + { + "name": "tokenId", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "description": "Identifier generated when a token is created.", + "required": true, + "deprecated": false, + "default": null, + "location": "path", + "content_type": null, + "json_schema": { + "type": "string" + }, + "schema_required": false + } + ], + "header": [], + "cookie": [], + "body": [] + }, + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false, + "use_flatten_mode": false + } + ], + "security_scheme_key_selected": "oauth2", + "security_scheme_selected": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://app.hubspot.com/oauth/authorize", + "tokenUrl": "https://api.hubapi.com/oauth/v1/token", + "scopes": { + "marketing.campaigns.read": "Read marketing campaigns", + "marketing.campaigns.write": "Write marketing campaigns", + "marketing.campaigns.revenue.read": "Read campaigns attribution revenue", + "forms": "Read from and write to my Forms", + "content": "Read from and write to my Content", + "marketing-email": "Marketing Single Send API access", + "transactional-email": "Transactional Emails", + "crm.objects.marketing_events.read": "Read marketing events", + "crm.objects.marketing_events.write": "Write marketing events" + } + } + } + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/openapi.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/openapi.json new file mode 100644 index 00000000..f78021b7 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/moar/openapi.json @@ -0,0 +1,70648 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Marketing Campaigns Public Api", + "description": "Basepom for all HubSpot Projects", + "version": "v3", + "x-hubspot-product-tier-requirements": { + "marketing": "PROFESSIONAL", + "sales": "FREE", + "service": "FREE", + "cms": "FREE", + "commerce": "FREE", + "crmHub": "FREE", + "dataHub": "FREE" + }, + "x-hubspot-related-documentation": [ + { + "name": "Campaigns", + "url": "https://developers.hubspot.com/docs/guides/api/marketing/campaigns" + } + ], + "x-hubspot-introduction": "You can use campaign endpoints to create, read, update, and delete marketing campaign data. For example, you can use these endpoints to create and manage HubSpot campaigns from your external applications. You can also transfer campaign data to external data warehouses for analytics.", + "x-moar-merged": true, + "x-moar-merged-count": 6 + }, + "servers": [ + { + "url": "https://api.hubapi.com" + } + ], + "tags": [ + { + "name": "Campaign Budget" + }, + { + "name": "Basic" + }, + { + "name": "Batch" + }, + { + "name": "Campaign" + }, + { + "name": "Campaign Asset" + }, + { + "name": "Campaign Reporting" + }, + { + "name": "Campaign Spend" + }, + { + "name": "Forms" + }, + { + "name": "Public_VNext_Emails" + }, + { + "name": "Marketing Emails" + }, + { + "name": "Statistics" + }, + { + "name": "Add event attendees" + }, + { + "name": "List Associations" + }, + { + "name": "Settings" + }, + { + "name": "Retrieve Participant State" + }, + { + "name": "Change property" + }, + { + "name": "Identifiers" + }, + { + "name": "Subscriber State Changes" + }, + { + "name": "Single_Send" + }, + { + "name": "Public SMTP tokens" + }, + { + "name": "Single send" + } + ], + "paths": { + "/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}": { + "get": { + "tags": [ + "Campaign Spend" + ], + "summary": "Read campaign spend item", + "description": "Read a campaign spend item by its spendId", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "spendId", + "in": "path", + "description": "Unique identifier for the spend item.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Campaign Spend" + ], + "summary": "Update campaign spend item", + "description": "Update a specific campaign spend item by ID", + "operationId": "put-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "spendId", + "in": "path", + "description": "Unique identifier for the spend item.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "name", + "order" + ], + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Campaign Spend" + ], + "summary": "Delete campaign spend item", + "description": "Delete a specific campaign spend item by ID", + "operationId": "delete-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "spendId", + "in": "path", + "description": "Unique identifier for the spend item.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update a batch of campaigns", + "description": "This endpoint updates a batch of campaigns based on the provided input data.\nThe maximum number of items in a batch request is 50.\nIf an empty string (\"\") is passed for any property in the Batch Update, it will reset that property's value.", + "operationId": "post-/marketing/v3/campaigns/batch/update", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}": { + "get": { + "tags": [ + "Campaign Budget" + ], + "summary": "Get budget item", + "description": "Get a specific budget item by ID", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "budgetId", + "in": "path", + "description": "Unique identifier for the budget item.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Campaign Budget" + ], + "summary": "Update budget item", + "description": "Update a specific budget item by ID", + "operationId": "put-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "budgetId", + "in": "path", + "description": "Unique identifier for the budget item.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "name", + "order" + ], + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Campaign Budget" + ], + "summary": "Delete budget item", + "description": "Delete a specific budget item by ID", + "operationId": "delete-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "budgetId", + "in": "path", + "description": "Unique identifier for the budget item.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}": { + "put": { + "tags": [ + "Campaign Asset" + ], + "summary": "Add asset association", + "description": "Associate a specified asset with a campaign. Using the API, you can create and remove associations for the following asset types: forms, static lists, external website pages, sequences, meetings, playbooks, feedback surveys, podcast episodes, sales documents, marketing emails, case studies, knowledge base articles, calls, and CTAs. \n\nFor other asset types, it is recommended to manage your associations directly in the campaign tool in HubSpot.", + "operationId": "put-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "assetType", + "in": "path", + "description": "The type of asset\nImportant: Currently, only the following asset types are available for association via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "assetId", + "in": "path", + "description": "Id of the asset", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Campaign Asset" + ], + "summary": "Remove asset association", + "description": "Disassociate a specified asset from a campaign.\nImportant: Currently, only the following asset types can be associated and disassociated via the API: Forms, Static lists, External website pages", + "operationId": "delete-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "assetType", + "in": "path", + "description": "The type of asset\nImportant: Currently, only the following asset types are available for disassociation via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "assetId", + "in": "path", + "description": "Id of the asset", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/budget/totals": { + "get": { + "tags": [ + "Campaign Budget" + ], + "summary": "Read budget", + "description": "Retrieve detailed information about the budget and spend items for a specified campaign, including the total budget, total spend, and remaining budget.\nBudget and Spend items may be returned in any order, but the order field specifies their sequence based on the creation date. The item with order 0 is the oldest, and items with higher order values are newer", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/budget/totals", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "budgetItems", + "currencyCode", + "spendItems" + ], + "type": "object", + "properties": { + "spendItems": { + "type": "array", + "items": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + }, + "budgetTotal": { + "type": "number" + }, + "remainingBudget": { + "type": "number" + }, + "spendTotal": { + "type": "number" + }, + "currencyCode": { + "type": "string", + "enum": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BOV", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BZD", + "CAD", + "CDF", + "CHE", + "CHF", + "CHW", + "CLF", + "CLP", + "CNY", + "COP", + "COU", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SLL", + "SOS", + "SRD", + "SSP", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "USN", + "UYI", + "UYU", + "UZS", + "VEF", + "VND", + "VUV", + "WST", + "XAF", + "XAG", + "XAU", + "XBA", + "XBB", + "XBC", + "XBD", + "XCD", + "XDR", + "XOF", + "XPD", + "XPF", + "XPT", + "XSU", + "XUA", + "YER", + "ZAR", + "ZMW", + "ZWL" + ] + }, + "budgetItems": { + "type": "array", + "items": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/batch/read": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Read a batch of campaigns", + "description": "This endpoint reads a batch of campaigns based on the provided input data and returns the campaigns along with their associated assets. \nThe maximum number of items in a batch request is 50.\nThe campaigns in the response are not guaranteed to be in the same order as they were provided in the request.\nIf duplicate campaign IDs are provided in the request, duplicates will be ignored. The response will include only unique IDs and will be returned without duplicates.\n", + "operationId": "post-/marketing/v3/campaigns/batch/read", + "parameters": [ + { + "name": "startDate", + "in": "query", + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.\n", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "assets", + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "assets": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "A paging cursor token for retrieving previous pages.", + "example": "" + }, + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the previous pages' results.", + "example": "" + } + }, + "description": "specifies the paging information needed to retrieve the previous set of results in a paginated API response" + } + }, + "description": "Contains information pagination of results." + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "metrics" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + } + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "assets", + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "assets": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "A paging cursor token for retrieving previous pages.", + "example": "" + }, + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the previous pages' results.", + "example": "" + } + }, + "description": "specifies the paging information needed to retrieve the previous set of results in a paginated API response" + } + }, + "description": "Contains information pagination of results." + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "metrics" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + } + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/": { + "get": { + "tags": [ + "Campaign" + ], + "summary": "Campaign search", + "description": "This endpoint allows users to search for and return a page of campaigns based on various query parameters. Users can filter by name, sort, and paginate through the campaigns, as well as control which properties are returned in the response.", + "operationId": "get-/marketing/v3/campaigns/", + "parameters": [ + { + "name": "sort", + "in": "query", + "description": "The field by which to sort the results. Allowed values are hs_name, createdAt, updatedAt. An optional '-' before the property name can denote descending order\nDefault: hs_name", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return. Allowed values range from 1 to 100\nDefault: 50", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "A filter to return campaigns whose names contain the specified substring. This allows partial matching of campaign names, returning all campaigns that include the given substring in their name. If this parameter is not provided, the search will return all campaigns", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Campaign" + ], + "summary": "Create a campaign", + "description": "Create a campaign with the given properties and return the campaign object, including the campaignGuid and created properties. ", + "operationId": "post-/marketing/v3/campaigns/", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/reports/metrics": { + "get": { + "tags": [ + "Campaign Reporting" + ], + "summary": "Get Campaign Metrics\n", + "description": "This endpoint retrieves key attribution metrics for a specified campaign, such as sessions, new contacts, and influenced contacts.", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/reports/metrics", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "influencedContacts", + "newContactsFirstTouch", + "newContactsLastTouch", + "sessions" + ], + "type": "object", + "properties": { + "sessions": { + "type": "integer", + "format": "int32" + }, + "newContactsFirstTouch": { + "type": "integer", + "format": "int32" + }, + "influencedContacts": { + "type": "integer", + "format": "int32" + }, + "newContactsLastTouch": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}": { + "get": { + "tags": [ + "Campaign Asset" + ], + "summary": "List assets", + "description": "This endpoint lists all assets of the campaign by asset type. The assetType parameter is required, and each request can only fetch assets of a single type.\nAsset metrics can also be fetched along with the assets; they are available only if start and end dates are provided.", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "assetType", + "in": "path", + "description": "The type of asset to fetch.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.\nDefault: 10", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.\n", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "metrics" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Delete a batch of campaigns", + "description": "This endpoint deletes a batch of campaigns. \nThe maximum number of items in a batch request is 50.\nThe response will always be 204 No Content, regardless of whether the campaigns exist or not, whether they were successfully deleted or not, or if only some of the campaigns in the batch were deleted.", + "operationId": "post-/marketing/v3/campaigns/batch/archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/reports/revenue": { + "get": { + "tags": [ + "Campaign Reporting" + ], + "summary": "Fetch revenue", + "description": "Fetch revenue attribution report data for a specified campaign\n", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/reports/revenue", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "attributionModel", + "in": "query", + "description": "Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED\nDefault value: LINEAR", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contactsNumber": { + "type": "integer", + "format": "int32" + }, + "dealAmount": { + "type": "number" + }, + "dealsNumber": { + "type": "integer", + "format": "int32" + }, + "revenueAmount": { + "type": "number" + }, + "currencyCode": { + "type": "string", + "enum": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BOV", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BZD", + "CAD", + "CDF", + "CHE", + "CHF", + "CHW", + "CLF", + "CLP", + "CNY", + "COP", + "COU", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SLL", + "SOS", + "SRD", + "SSP", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "USN", + "UYI", + "UYU", + "UZS", + "VEF", + "VND", + "VUV", + "WST", + "XAF", + "XAG", + "XAU", + "XBA", + "XBB", + "XBC", + "XBD", + "XCD", + "XDR", + "XOF", + "XPD", + "XPF", + "XPT", + "XSU", + "XUA", + "YER", + "ZAR", + "ZMW", + "ZWL" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.revenue.read" + ] + }, + { + "oauth2": [ + "marketing.campaigns.revenue.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/batch/create": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create a batch of campaigns", + "description": "This endpoint creates a batch of campaigns. The maximum number of items in a batch request is 50.\nThe campaigns in the response are not guaranteed to be in the same order as they were provided in the request.", + "operationId": "post-/marketing/v3/campaigns/batch/create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/budget": { + "post": { + "tags": [ + "Campaign Budget" + ], + "summary": "Add budget item", + "description": "Add a new budget item to the campaign", + "operationId": "post-/marketing/v3/campaigns/{campaignGuid}/budget", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "name", + "order" + ], + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}": { + "get": { + "tags": [ + "Campaign" + ], + "summary": "Read a campaign", + "description": "Get a campaign identified by a specific campaignGuid with the given properties. Along with the campaign information, it also returns information about assets. Depending on the query parameters used, this can also be used to return information about the corresponding assets' metrics. Metrics are available only if startDate and endDate are provided.", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": " End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "properties", + "in": "query", + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object, they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "assets", + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "assets": { + "type": "object", + "additionalProperties": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "A paging cursor token for retrieving previous pages.", + "example": "" + }, + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the previous pages' results.", + "example": "" + } + }, + "description": "specifies the paging information needed to retrieve the previous set of results in a paginated API response" + } + }, + "description": "Contains information pagination of results." + }, + "results": { + "type": "array", + "items": { + "required": [ + "id", + "metrics" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + } + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Campaign" + ], + "summary": "Delete campaign ", + "description": "Delete a specified campaign from the system.\nThis call will return a 204 No Content response regardless of whether the campaignGuid provided corresponds to an existing campaign or not.", + "operationId": "delete-/marketing/v3/campaigns/{campaignGuid}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update campaign", + "description": "Perform a partial update of a campaign identified by the specified campaignGuid. Provided property values will be overwritten. Read-only and non-existent properties will cause 400 error.\nIf an empty string is passed for any property in the Batch Update, it will reset that property's value.\n", + "operationId": "patch-/marketing/v3/campaigns/{campaignGuid}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.\n", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}": { + "get": { + "tags": [ + "Campaign Reporting" + ], + "summary": "Fetch contact IDs", + "description": "Fetch the list of contact IDs for the specified campaign and contact type", + "operationId": "get-/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "contactType", + "in": "path", + "description": "The type of metric to filter the influenced contacts. Allowed values: contactFirstTouch, contactLastTouch, influencedContacts", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "Limit for the number of contacts to fetch\nDefault: 100", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "after", + "in": "query", + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing.campaigns.read" + ] + }, + { + "private_apps": [ + "marketing.campaigns.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/campaigns/{campaignGuid}/spend": { + "post": { + "tags": [ + "Campaign Spend" + ], + "summary": "Create campaign spend item", + "description": "Create a new campaign spend item", + "operationId": "post-/marketing/v3/campaigns/{campaignGuid}/spend", + "parameters": [ + { + "name": "campaignGuid", + "in": "path", + "description": "Unique identifier for the campaign.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "name", + "order" + ], + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "marketing.campaigns.write" + ] + }, + { + "oauth2": [ + "marketing.campaigns.write" + ] + } + ], + "x-moar-primitive-count": 4, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/forms/{formId}": { + "get": { + "tags": [ + "Forms" + ], + "summary": "Get a form definition", + "description": "Returns a form based on the form ID provided.", + "operationId": "get-/marketing/v3/forms/{formId}_getById", + "parameters": [ + { + "name": "formId", + "in": "path", + "description": "The unique identifier of the form", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "properties": {}, + "oneOf": [ + { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionBase", + "has_circular_reference": true + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + ] + }, + "example": { + "id": "6eae0163-5362-4c0e-809c-b99a18678adc", + "name": "Register for updates", + "createdAt": "2020-09-22T05:12:27.505Z", + "updatedAt": "2020-09-22T07:17:31.627Z", + "archived": false, + "fieldGroups": [ + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "email", + "label": "Email", + "required": true, + "hidden": false, + "fieldType": "email", + "validation": { + "blockedEmailDomains": [], + "useDefaultBlockList": false + } + } + ] + }, + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "firstname", + "label": "First name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + }, + { + "objectTypeId": "0-1", + "name": "lastname", + "label": "Last name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + } + ] + } + ], + "configuration": { + "language": "en", + "cloneable": true, + "postSubmitAction": { + "type": "thank_you", + "value": "Thanks for submitting the form." + }, + "editable": true, + "archivable": true, + "recaptchaEnabled": true, + "notifyContactOwner": false, + "notifyRecipients": [ + "2886602" + ], + "createNewContactForNewEmail": false, + "prePopulateKnownValues": true, + "allowLinkToResetKnownValues": false, + "lifecycleStages": [ + { + "objectTypeId": "0-1", + "value": "subscriber" + }, + { + "objectTypeId": "0-2", + "value": "subscriber" + } + ] + }, + "displayOptions": { + "renderRawHtml": false, + "theme": "default_style", + "submitButtonText": "Submit", + "style": { + "fontFamily": "arial, helvetica, sans-serif", + "backgroundWidth": "100%", + "labelTextColor": "#33475b", + "labelTextSize": "13px", + "helpTextColor": "#7C98B6", + "helpTextSize": "11px", + "legalConsentTextColor": "#33475b", + "legalConsentTextSize": "14px", + "submitColor": "#ff7a59", + "submitAlignment": "left", + "submitFontColor": "#ffffff", + "submitSize": "12px" + }, + "cssClass": "hs-form stacked" + }, + "legalConsentOptions": { + "type": "explicit_consent_to_process", + "communicationConsentText": "

Fancy Forms, LLC is committed to protecting and respecting your privacy, and we\u2019ll only use your personal information to administer your account and to provide the products and services you requested from us. From time to time, we would like to contact you about our products and services, as well as other content that may be of interest to you. If you consent to us contacting you for this purpose, please tick below to say how you would like us to contact you:

", + "communicationsCheckboxes": [ + { + "required": false, + "subscriptionTypeId": 3883363, + "label": "

I agree to receive other communications from Fancy Forms, LLC.

" + } + ], + "consentToProcessText": "

In order to provide you the content requested, we need to store and process your personal data. If you consent to us storing your personal data for this purpose, please tick the checkbox below.

", + "consentToProcessCheckboxLabel": "

I agree to allow Fancy Forms, LLC to store and process my personal data.

", + "privacyText": "

You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices, and how we are committed to protecting and respecting your privacy, please review our Privacy Policy.

" + }, + "formType": "hubspot" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "forms" + ] + }, + { + "private_apps": [ + "forms" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Forms" + ], + "summary": "Update a form definition", + "description": "Update all fields of a hubspot form definition.", + "operationId": "put-/marketing/v3/forms/{formId}_replace", + "parameters": [ + { + "name": "formId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "allOf": [ + { + "properties": {}, + "oneOf": [ + { + "$ref": "#/components/schemas/HubSpotFormDefinition", + "has_circular_reference": true + } + ] + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "properties": {}, + "oneOf": [ + { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionBase", + "has_circular_reference": true + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + ] + }, + "example": { + "id": "6eae0163-5362-4c0e-809c-b99a18678adc", + "name": "Register for updates", + "createdAt": "2020-09-22T05:12:27.505Z", + "updatedAt": "2020-09-22T07:17:31.627Z", + "archived": false, + "fieldGroups": [ + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "email", + "label": "Email", + "required": true, + "hidden": false, + "fieldType": "email", + "validation": { + "blockedEmailDomains": [], + "useDefaultBlockList": false + } + } + ] + }, + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "firstname", + "label": "First name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + }, + { + "objectTypeId": "0-1", + "name": "lastname", + "label": "Last name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + } + ] + } + ], + "configuration": { + "language": "en", + "cloneable": true, + "postSubmitAction": { + "type": "thank_you", + "value": "Thanks for submitting the form." + }, + "editable": true, + "archivable": true, + "recaptchaEnabled": true, + "notifyContactOwner": false, + "notifyRecipients": [ + "2886602" + ], + "createNewContactForNewEmail": false, + "prePopulateKnownValues": true, + "allowLinkToResetKnownValues": false, + "lifecycleStages": [ + { + "objectTypeId": "0-1", + "value": "subscriber" + }, + { + "objectTypeId": "0-2", + "value": "subscriber" + } + ] + }, + "displayOptions": { + "renderRawHtml": false, + "theme": "default_style", + "submitButtonText": "Submit", + "style": { + "fontFamily": "arial, helvetica, sans-serif", + "backgroundWidth": "100%", + "labelTextColor": "#33475b", + "labelTextSize": "13px", + "helpTextColor": "#7C98B6", + "helpTextSize": "11px", + "legalConsentTextColor": "#33475b", + "legalConsentTextSize": "14px", + "submitColor": "#ff7a59", + "submitAlignment": "left", + "submitFontColor": "#ffffff", + "submitSize": "12px" + }, + "cssClass": "hs-form stacked" + }, + "legalConsentOptions": { + "type": "explicit_consent_to_process", + "communicationConsentText": "

Fancy Forms, LLC is committed to protecting and respecting your privacy, and we\u2019ll only use your personal information to administer your account and to provide the products and services you requested from us. From time to time, we would like to contact you about our products and services, as well as other content that may be of interest to you. If you consent to us contacting you for this purpose, please tick below to say how you would like us to contact you:

", + "communicationsCheckboxes": [ + { + "required": false, + "subscriptionTypeId": 3883363, + "label": "

I agree to receive other communications from Fancy Forms, LLC.

" + } + ], + "consentToProcessText": "

In order to provide you the content requested, we need to store and process your personal data. If you consent to us storing your personal data for this purpose, please tick the checkbox below.

", + "consentToProcessCheckboxLabel": "

I agree to allow Fancy Forms, LLC to store and process my personal data.

", + "privacyText": "

You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices, and how we are committed to protecting and respecting your privacy, please review our Privacy Policy.

" + }, + "formType": "hubspot" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "forms" + ] + }, + { + "private_apps": [ + "forms" + ] + } + ], + "x-moar-primitive-count": 215, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Forms" + ], + "summary": "Archive a form definition", + "description": "Archive a form definition. New submissions will not be accepted and the form definition will be permanently deleted after 3 months.", + "operationId": "delete-/marketing/v3/forms/{formId}_archive", + "parameters": [ + { + "name": "formId", + "in": "path", + "description": "The ID of the form to archive.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": { + "application/json": { + "example": {} + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "forms" + ] + }, + { + "private_apps": [ + "forms" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Forms" + ], + "summary": "Partially update a form definition", + "description": "Update some of the form definition components", + "operationId": "patch-/marketing/v3/forms/{formId}_update", + "parameters": [ + { + "name": "formId", + "in": "path", + "description": "The ID of the form to update.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "fieldGroups": { + "type": "array", + "description": "The fields in the form, grouped in rows.", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "archived": { + "type": "boolean", + "description": "Whether this form is archived." + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "name": { + "type": "string", + "description": "The name of the form. Expected to be unique for a hub." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "properties": {}, + "oneOf": [ + { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionBase", + "has_circular_reference": true + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + ] + }, + "example": { + "id": "6eae0163-5362-4c0e-809c-b99a18678adc", + "name": "Register for event updates", + "createdAt": "2020-09-22T05:12:27.505Z", + "updatedAt": "2020-09-22T07:35:48.172Z", + "archived": false, + "fieldGroups": [ + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "firstname", + "label": "First name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + }, + { + "objectTypeId": "0-1", + "name": "email", + "label": "Email", + "required": true, + "hidden": false, + "fieldType": "email", + "validation": { + "blockedEmailDomains": [], + "useDefaultBlockList": false + } + } + ] + }, + { + "groupType": "progressive", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "age_group", + "label": "Age group", + "required": false, + "hidden": false, + "options": [ + { + "label": "Under 18", + "value": "Under 18", + "description": "", + "displayOrder": 0 + }, + { + "label": "18-60", + "value": "18-60", + "description": "", + "displayOrder": 1 + }, + { + "label": "60+", + "value": "60+", + "description": "", + "displayOrder": 2 + } + ], + "fieldType": "dropdown" + } + ] + } + ], + "configuration": { + "language": "en", + "cloneable": true, + "postSubmitAction": { + "type": "thank_you", + "value": "Thanks for signing up for our updates" + }, + "editable": true, + "archivable": true, + "recaptchaEnabled": false, + "notifyContactOwner": false, + "notifyRecipients": [ + "2886602" + ], + "createNewContactForNewEmail": false, + "prePopulateKnownValues": true, + "allowLinkToResetKnownValues": false, + "lifecycleStages": [ + { + "objectTypeId": "0-1", + "value": "subscriber" + }, + { + "objectTypeId": "0-2", + "value": "subscriber" + } + ] + }, + "displayOptions": { + "renderRawHtml": false, + "theme": "default_style", + "submitButtonText": "Submit", + "style": { + "fontFamily": "arial, helvetica, sans-serif", + "backgroundWidth": "100%", + "labelTextColor": "#33475b", + "labelTextSize": "13px", + "helpTextColor": "#7C98B6", + "helpTextSize": "11px", + "legalConsentTextColor": "#33475b", + "legalConsentTextSize": "14px", + "submitColor": "#ff7a59", + "submitAlignment": "left", + "submitFontColor": "#ffffff", + "submitSize": "12px" + }, + "cssClass": "hs-form stacked" + }, + "legalConsentOptions": { + "type": "explicit_consent_to_process", + "communicationConsentText": "

Fancy Forms, LLC is committed to protecting and respecting your privacy, and we\u2019ll only use your personal information to administer your account and to provide the products and services you requested from us. From time to time, we would like to contact you about our products and services, as well as other content that may be of interest to you. If you consent to us contacting you for this purpose, please tick below to say how you would like us to contact you:

", + "communicationsCheckboxes": [ + { + "required": false, + "subscriptionTypeId": 3883363, + "label": "

I agree to receive other communications from Fancy Forms, LLC.

" + } + ], + "consentToProcessText": "

In order to provide you the content requested, we need to store and process your personal data. If you consent to us storing your personal data for this purpose, please tick the checkbox below.

", + "consentToProcessCheckboxLabel": "

I agree to allow Fancy Forms, LLC to store and process my personal data.

", + "privacyText": "

You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices, and how we are committed to protecting and respecting your privacy, please review our Privacy Policy.

" + }, + "formType": "hubspot" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "forms" + ] + }, + { + "private_apps": [ + "forms" + ] + } + ], + "x-moar-primitive-count": 209, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/forms/": { + "get": { + "tags": [ + "Forms" + ], + "summary": "Get a list of forms", + "description": "Returns a list of forms based on the search filters. By default, it returns the first 20 `hubspot` forms", + "operationId": "get-/marketing/v3/forms/_getPage", + "parameters": [ + { + "name": "after", + "in": "query", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to display per page.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "archived", + "in": "query", + "description": "Whether to return only results that have been archived.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "formTypes", + "in": "query", + "description": "The form types to be included in the results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "hubspot", + "captured", + "flow", + "blog_comment", + "all" + ] + } + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "oneOf": [ + { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionBase", + "has_circular_reference": true + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + ] + } + } + } + }, + "example": { + "results": [ + { + "id": "b6336282-50ec-465e-894e-e368146fa25f", + "name": "Contact us", + "createdAt": "2020-09-22T05:15:12.311Z", + "updatedAt": "2020-09-22T05:15:35.361Z", + "archived": false, + "fieldGroups": [ + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "email", + "label": "Email", + "required": true, + "hidden": false, + "fieldType": "email", + "validation": { + "blockedEmailDomains": [], + "useDefaultBlockList": false + } + } + ] + }, + { + "groupType": "default", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "firstname", + "label": "First name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + } + ] + }, + { + "groupType": "default", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "lastname", + "label": "Last name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + } + ] + }, + { + "groupType": "default", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "message", + "label": "Message", + "required": false, + "hidden": false, + "fieldType": "multi_line_text" + } + ] + } + ], + "configuration": { + "language": "en", + "cloneable": true, + "postSubmitAction": { + "type": "thank_you", + "value": "Thanks for submitting the form." + }, + "editable": true, + "archivable": true, + "recaptchaEnabled": false, + "notifyContactOwner": false, + "notifyRecipients": [ + "2886602" + ], + "createNewContactForNewEmail": false, + "prePopulateKnownValues": true, + "allowLinkToResetKnownValues": false, + "lifecycleStages": [ + { + "objectTypeId": "0-1", + "value": "subscriber" + }, + { + "objectTypeId": "0-2", + "value": "subscriber" + } + ] + }, + "displayOptions": { + "renderRawHtml": false, + "theme": "default_style", + "submitButtonText": "Submit", + "style": { + "fontFamily": "arial, helvetica, sans-serif", + "backgroundWidth": "100%", + "labelTextColor": "#33475b", + "labelTextSize": "13px", + "helpTextColor": "#7C98B6", + "helpTextSize": "11px", + "legalConsentTextColor": "#33475b", + "legalConsentTextSize": "14px", + "submitColor": "#ff7a59", + "submitAlignment": "left", + "submitFontColor": "#ffffff", + "submitSize": "12px" + }, + "cssClass": "hs-form stacked" + }, + "legalConsentOptions": { + "type": "none" + }, + "formType": "hubspot" + }, + { + "id": "c7cd13be-3024-4bc8-8582-4a87678b5acc", + "name": "Pop-up form: Sign up now popup", + "formType": "flow", + "createdAt": "2020-09-22T05:19:42.276Z", + "updatedAt": "2020-09-22T05:20:29.356Z", + "archived": false + }, + { + "id": "ad4497f3-b80a-4369-a7d0-cade0e4c202d", + "name": "Collected form: .visitorRegistration", + "formType": "captured", + "createdAt": "2020-09-22T05:18:40.533Z", + "updatedAt": "2020-09-22T05:18:40.533Z", + "archived": false + } + ], + "paging": { + "next": { + "after": "Mw%3D%3D", + "link": "https://api.hubspot.com/marketing/v3/forms?portalId=103268800&limit=3&formTypes=ALL&hs_static_app=api-goggles&hs_static_app_version=1.4854&after=Mw%3D%3D" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "forms" + ] + }, + { + "private_apps": [ + "forms" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Forms" + ], + "summary": "Create a form", + "description": "Add a new `hubspot` form", + "operationId": "post-/marketing/v3/forms/_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "oneOf": [ + { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionCreateRequestBase", + "has_circular_reference": true + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField", + "has_circular_reference": true + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + ] + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "properties": {}, + "oneOf": [ + { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionBase", + "has_circular_reference": true + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField", + "has_circular_reference": true + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + } + }, + "description": "A form field used for collecting an email address." + }, + { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + } + }, + "configuration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + } + }, + "postSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "displayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + } + }, + "description": "Options for styling the form." + }, + "legalConsentOptions": { + "oneOf": [ + { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + } + ] + }, + "example": { + "id": "409fa224-7fef-4507-b731-1eb3f508a3eb", + "name": "Join our mailing list", + "createdAt": "2020-09-22T07:13:28.102Z", + "updatedAt": "2020-09-22T07:13:28.102Z", + "archived": false, + "fieldGroups": [ + { + "groupType": "default_group", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "email", + "label": "Email", + "required": true, + "hidden": false, + "fieldType": "email", + "validation": { + "blockedEmailDomains": [], + "useDefaultBlockList": false + } + } + ] + }, + { + "groupType": "default", + "richTextType": "text", + "fields": [ + { + "objectTypeId": "0-1", + "name": "firstname", + "label": "First name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + }, + { + "objectTypeId": "0-1", + "name": "lastname", + "label": "Last name", + "required": false, + "hidden": false, + "fieldType": "single_line_text" + } + ] + } + ], + "configuration": { + "language": "en", + "cloneable": true, + "postSubmitAction": { + "type": "thank_you", + "value": "Thanks for joining our mailing list." + }, + "editable": true, + "archivable": true, + "recaptchaEnabled": false, + "notifyContactOwner": false, + "notifyRecipients": [ + "2886602" + ], + "createNewContactForNewEmail": false, + "prePopulateKnownValues": true, + "allowLinkToResetKnownValues": false, + "lifecycleStages": [ + { + "objectTypeId": "0-1", + "value": "subscriber" + }, + { + "objectTypeId": "0-2", + "value": "subscriber" + } + ] + }, + "displayOptions": { + "renderRawHtml": false, + "theme": "default_style", + "submitButtonText": "Submit", + "style": { + "fontFamily": "arial, helvetica, sans-serif", + "backgroundWidth": "100%", + "labelTextColor": "#33475b", + "labelTextSize": "13px", + "helpTextColor": "#7C98B6", + "helpTextSize": "11px", + "legalConsentTextColor": "#33475b", + "legalConsentTextSize": "14px", + "submitColor": "#ff7a59", + "submitAlignment": "left", + "submitFontColor": "#ffffff", + "submitSize": "12px" + }, + "cssClass": "hs-form stacked" + }, + "legalConsentOptions": { + "type": "none" + }, + "formType": "hubspot" + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "forms" + ] + }, + { + "private_apps": [ + "forms" + ] + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/statistics/list": { + "get": { + "tags": [ + "Statistics" + ], + "summary": "Get aggregated statistics", + "description": "Use this endpoint to get aggregated statistics of emails sent in a specified time span. It also returns the list of emails that were sent during the time span.", + "operationId": "get-/marketing/v3/emails/statistics/list", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "description": "List of email IDs that were sent during the time span.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "campaignAggregations": { + "type": "object", + "additionalProperties": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "description": "The aggregated statistics per campaign." + }, + "aggregate": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + } + }, + "description": "Aggregated statistics for the given interval, plus the IDs of emails that were sent during that interval." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/publish": { + "post": { + "tags": [ + "Public_VNext_Emails" + ], + "operationId": "post-/marketing/v3/emails/{emailId}/publish", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing-email" + ] + }, + { + "private_apps": [ + "marketing-email" + ] + }, + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/ab-test/create-variation": { + "post": { + "tags": [ + "Public_VNext_Emails" + ], + "summary": "Create an A/B test variation", + "description": "Create a new variation for an email A/B test", + "operationId": "post-/marketing/v3/emails/ab-test/create-variation", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "contentId", + "variationName" + ], + "type": "object", + "properties": { + "variationName": { + "type": "string" + }, + "contentId": { + "type": "string", + "description": "ID of the object to test." + } + }, + "description": "Request body object for creating A/B tests.", + "example": { + "contentId": "7", + "variantName": "AB Test - Number 7" + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/statistics/histogram": { + "get": { + "tags": [ + "Statistics" + ], + "summary": "Get aggregated statistic intervals", + "description": "Get aggregated statistics in intervals for a specified time span. Each interval contains aggregated statistics of the emails that were sent in that time.", + "operationId": "get-/marketing/v3/emails/statistics/histogram", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of objects.", + "format": "int32" + }, + "results": { + "type": "array", + "description": "Collection of objects.", + "items": { + "required": [ + "aggregations", + "interval" + ], + "type": "object", + "properties": { + "interval": { + "required": [ + "end", + "start" + ], + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + } + } + }, + "aggregations": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + } + } + } + } + }, + "description": "Response object for collections of EmailStatisticIntervals." + }, + "example": { + "results": [ + { + "aggregateStatistic": { + "counters": { + "bounce": 0, + "click": 8, + "contactslost": 0, + "delivered": 704, + "dropped": 1, + "hardbounced": 0, + "notsent": 1, + "open": 443, + "pending": 0, + "selected": 705, + "sent": 704, + "softbounced": 0, + "spamreport": 0, + "suppressed": 0, + "unsubscribed": 0 + }, + "deviceBreakdown": { + "click_device_type": { + "computer": 6, + "mobile": 2, + "unknown": 0 + }, + "open_device_type": { + "computer": 44, + "mobile": 8, + "unknown": 391 + } + }, + "qualifierStats": {}, + "ratios": { + "bounceratio": 0, + "clickratio": 1.136, + "clickthroughratio": 1.806, + "contactslostratio": 0, + "deliveredratio": 100, + "hardbounceratio": 0, + "notsentratio": 0.142, + "openratio": 62.926, + "pendingratio": 0, + "softbounceratio": 0, + "spamreportratio": 0, + "unsubscribedratio": 0 + } + }, + "interval": { + "end": "2020-06-01T04:00:00Z", + "start": "2020-05-01T04:00:00Z" + } + }, + { + "aggregations": { + "counters": { + "bounce": 1, + "click": 0, + "contactslost": 1, + "delivered": 4, + "dropped": 1, + "hardbounced": 1, + "notsent": 1, + "open": 4, + "pending": 0, + "selected": 6, + "sent": 5, + "softbounced": 0, + "spamreport": 0, + "suppressed": 0, + "unsubscribed": 0 + }, + "deviceBreakdown": { + "click_device_type": { + "computer": 0, + "mobile": 0, + "unknown": 0 + }, + "open_device_type": { + "computer": 0, + "mobile": 0, + "unknown": 4 + } + }, + "qualifierStats": {}, + "ratios": { + "bounceratio": 20, + "clickratio": 0, + "clickthroughratio": 0, + "contactslostratio": 20, + "deliveredratio": 80, + "hardbounceratio": 20, + "notsentratio": 16.667, + "openratio": 100, + "pendingratio": 0, + "softbounceratio": 0, + "spamreportratio": 0, + "unsubscribedratio": 0 + } + }, + "interval": { + "end": "2020-07-01T04:00:00Z", + "start": "2020-06-01T04:00:00Z" + } + }, + { + "aggregations": { + "counters": {}, + "deviceBreakdown": {}, + "qualifierStats": {}, + "ratios": {} + }, + "interval": { + "end": "2020-07-02T00:00:00Z", + "start": "2020-07-01T04:00:00Z" + } + } + ], + "total": 3 + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/ab-test/get-variation": { + "get": { + "tags": [ + "Marketing Emails" + ], + "summary": "Get the variation of a an A/B marketing email", + "description": "This endpoint lets you obtain the variation of an A/B marketing email. If the email is variation A (master) it will return variation B (variant) and vice versa.", + "operationId": "get-/marketing/v3/emails/{emailId}/ab-test/get-variation", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/draft/reset": { + "post": { + "tags": [ + "Marketing Emails" + ], + "summary": "Reset Draft", + "description": "Resets the draft back to a copy of the live object.", + "operationId": "post-/marketing/v3/emails/{emailId}/draft/reset", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft": { + "post": { + "tags": [ + "Marketing Emails" + ], + "summary": "Restore a revision of a marketing email to DRAFT state", + "description": "Restores a previous revision of a marketing email to DRAFT state. If there is currently something in the draft for that object, it is overwritten. ", + "operationId": "post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + }, + { + "name": "revisionId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/draft": { + "get": { + "tags": [ + "Marketing Emails" + ], + "summary": "Get draft version of a marketing email", + "description": "Get the draft version of an email (if it exists). If no draft version exists, the published email is returned.", + "operationId": "get-/marketing/v3/emails/{emailId}/draft", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Marketing Emails" + ], + "summary": "Create or update draft version", + "description": "Create or update the draft version of a marketing email. If no draft exists, the system creates a draft from the current \u201clive\u201d email then applies the request body to that draft. The draft version only lives on the buffer\u2014the email is not cloned.", + "operationId": "patch-/marketing/v3/emails/{emailId}/draft", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "requestBody": { + "description": "A marketing email object with properties that should overwrite the corresponding properties in the email's current draft.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "Properties of a marketing email you can update via the API.", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "name": "My subject", + "publishDate": "2023-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 108, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/revisions": { + "get": { + "tags": [ + "Marketing Emails" + ], + "summary": "Get revisions of a marketing email", + "description": "Get a list of all versions of a marketing email, with each entry including the full state of that particular version. The current revision has the ID -1.", + "operationId": "get-/marketing/v3/emails/{emailId}/revisions", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of content emails.", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + }, + "prev": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "A paging cursor token for retrieving previous pages.", + "example": "" + }, + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the previous pages' results.", + "example": "" + } + }, + "description": "specifies the paging information needed to retrieve the previous set of results in a paginated API response" + } + }, + "description": "Contains information pagination of results." + }, + "results": { + "type": "array", + "description": "Collection of emails.", + "items": { + "required": [ + "id", + "object", + "updatedAt", + "user" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of this marketing email version." + }, + "user": { + "required": [ + "email", + "fullName", + "id" + ], + "type": "object", + "properties": { + "fullName": { + "type": "string", + "description": "First and last name of the user." + }, + "id": { + "type": "string", + "description": "ID of the user." + }, + "email": { + "type": "string", + "description": "Email address of the user." + } + }, + "description": "Model definition for a version user. Contains addition information about the user who created a version." + }, + "object": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "description": "Model definition for a marketing email version. Contains metadata describing the version of the marketing email. It can be used to view edit history of a marketing email." + } + } + }, + "description": "Response object for collections of marketing emails with pagination information." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/unpublish": { + "post": { + "tags": [ + "Public_VNext_Emails" + ], + "operationId": "post-/marketing/v3/emails/{emailId}/unpublish", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing-email" + ] + }, + { + "private_apps": [ + "marketing-email" + ] + }, + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "ten-secondly" + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/revisions/{revisionId}": { + "get": { + "tags": [ + "Marketing Emails" + ], + "summary": "Get a revision of a marketing email.", + "description": "Get a specific revision of a marketing email.", + "operationId": "get-/marketing/v3/emails/{emailId}/revisions/{revisionId}", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + }, + { + "name": "revisionId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "id", + "object", + "updatedAt", + "user" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of this marketing email version." + }, + "user": { + "required": [ + "email", + "fullName", + "id" + ], + "type": "object", + "properties": { + "fullName": { + "type": "string", + "description": "First and last name of the user." + }, + "id": { + "type": "string", + "description": "ID of the user." + }, + "email": { + "type": "string", + "description": "Email address of the user." + } + }, + "description": "Model definition for a version user. Contains addition information about the user who created a version." + }, + "object": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "description": "Model definition for a marketing email version. Contains metadata describing the version of the marketing email. It can be used to view edit history of a marketing email." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/clone": { + "post": { + "tags": [ + "Public_VNext_Emails" + ], + "summary": "Clone an email", + "description": "Clone an existing email", + "operationId": "post-/marketing/v3/emails/clone", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "cloneName": { + "type": "string" + }, + "language": { + "type": "string" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/": { + "get": { + "tags": [ + "Marketing Emails" + ], + "summary": "Get all marketing emails for a HubSpot account.", + "description": "The results can be filtered, allowing you to find a specific set of emails. See the table below for a full list of filtering options.", + "operationId": "get-/marketing/v3/emails/", + "parameters": [], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of content emails.", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "description": "Collection of emails.", + "items": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + }, + "description": "Response object for collections of marketing emails with pagination information." + }, + "example": { + "paging": { + "next": { + "after": "MjA%3D", + "link": "https://api.hubapi.com/marketing/v3/emails/emails?after=MjA%3D" + }, + "prev": { + "before": "MTA%3D", + "link": "https://api.hubapi.com/marketing/v3/emails/emails?after=MTA%3D" + } + }, + "results": [ + { + "activeDomain": "", + "archived": false, + "content": { + "templatePath": "generated_layouts/4701002617.html", + "widgets": { + "Social_Sharing": { + "body": {}, + "child_css": {}, + "css": {}, + "id": "Social_Sharing", + "label": "Social Sharing", + "name": "Social_Sharing", + "type": "social_sharing" + }, + "column1": { + "body": { + "html": "" + }, + "child_css": {}, + "css": {}, + "id": "column1", + "label": "Column Above Body", + "name": "column1", + "type": "rich_text" + }, + "hs_email_body": { + "body": { + "html": "

Hi {{contact.firstname}},

\n

This is an example of an email in HubSpot. You can add and format text, include your own images, and even personalize the message with details about the recipient, like their {{contact.company}} or {{contact.city}}.

\n

In HubSpot, the Email tool is closely linked with the Lists and Workflows tools. You can create a list of recipients on the \"Sending\" tab up above. If you want this email to be part of a nurturing series, you can make it part of a workflow.

\n

Need help? Check out the documentation on creating an email, creating a list, or creating a workflow.

" + }, + "child_css": {}, + "css": {}, + "id": "hs_email_body", + "label": "Main Email Body", + "name": "hs_email_body", + "type": "rich_text" + }, + "logo_image": { + "body": { + "alt": "vast.png", + "height": 135, + "link": "", + "override_inherited_src": false, + "src": "", + "suppress_company_name": false, + "width": 413 + }, + "child_css": {}, + "css": {}, + "id": "logo_image", + "label": "Logo", + "name": "logo_image", + "type": "logo" + }, + "module_148465958537693": { + "body": { + "html": "

Something Powerful

\n

Tell The Reader More

\n

The headline and subheader tells us what you're offering, and the form header closes the deal. Over here you can explain why your offer is so great it's worth filling out a form for.

\n

Remember:

\n" + }, + "child_css": {}, + "css": {}, + "id": "module_148465958537693", + "label": "Rich Text", + "name": "module_148465958537693", + "type": "rich_text" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "type": "text" + }, + "social_sharing_label": { + "body": {}, + "child_css": {}, + "css": {}, + "id": "social_sharing_label", + "label": "Social Sharing Label", + "name": "social_sharing_label", + "type": "text" + } + } + }, + "createdAt": "2017-02-16T13:05:18.390Z", + "createdById": 2983922, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@yahoo.com" + }, + "id": "4613448134", + "isPublished": true, + "isTransactional": false, + "name": "Fail dmarc", + "sendOnPublish": true, + "state": "PUBLISHED", + "stats": { + "counters": { + "bounce": 1, + "click": 0, + "contactslost": 0, + "delivered": 0, + "dropped": 0, + "hardbounced": 0, + "notsent": 0, + "open": 0, + "pending": 0, + "reply": 0, + "selected": 1, + "sent": 1, + "softbounced": 1, + "spamreport": 0, + "suppressed": 0, + "unsubscribed": 0 + }, + "deviceBreakdown": { + "click_device_type": { + "computer": 0, + "mobile": 0, + "unknown": 0 + }, + "open_device_type": { + "computer": 0, + "mobile": 0, + "unknown": 0 + } + }, + "qualifierStats": {}, + "ratios": { + "bounceratio": 100, + "clickratio": 0, + "clickthroughratio": 0, + "contactslostratio": 0, + "deliveredratio": 0, + "hardbounceratio": 0, + "notsentratio": 0, + "openratio": 0, + "pendingratio": 0, + "replyratio": 0, + "softbounceratio": 100, + "spamreportratio": 0, + "unsubscribedratio": 0 + } + }, + "subcategory": "batch", + "subject": "Subject", + "subscriptionDetails": { + "officeLocationId": "4701002382", + "subscriptionId": 1264909 + }, + "to": { + "contactIds": { + "include": [ + 51 + ] + }, + "contactIlsLists": {}, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2017-02-16T13:08:24.853Z", + "updatedById": 2983922 + } + ], + "total": 1 + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Marketing Emails" + ], + "summary": "Create a new marketing email.", + "description": "Use this endpoint to create a new marketing email.", + "operationId": "post-/marketing/v3/emails/", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "Properties of a marketing email you can set when creating a marketing email.", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "name": "My subject", + "publishDate": "2023-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 109, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore": { + "post": { + "tags": [ + "Marketing Emails" + ], + "summary": "Restore a revision of a marketing email", + "description": "Restores a previous revision of a marketing email. The current revision becomes old, and the restored revision is given a new version number.", + "operationId": "post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + }, + { + "name": "revisionId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/emails/{emailId}": { + "get": { + "tags": [ + "Marketing Emails" + ], + "summary": "Get the details of a specified marketing email.", + "description": "Get the details for a marketing email.", + "operationId": "get-/marketing/v3/emails/{emailId}", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Marketing Emails" + ], + "summary": "Delete an email", + "description": "Delete an existing marketing email.", + "operationId": "delete-/marketing/v3/emails/{emailId}", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Marketing Emails" + ], + "summary": "Update a marketing email.", + "description": "Change properties of a marketing email.", + "operationId": "patch-/marketing/v3/emails/{emailId}", + "parameters": [ + { + "name": "emailId", + "in": "path", + "required": true, + "schema": { + "pattern": ".+", + "type": "string" + } + } + ], + "requestBody": { + "description": "A marketing email object with properties that should overwrite the corresponding properties of the marketing email.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "Properties of a marketing email you can update via the API.", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "name": "My subject", + "publishDate": "2023-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "headingTwoFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "linksFont": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + } + } + }, + "dividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + } + } + } + }, + "description": "Data structure representing the content of the email." + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "type": "object", + "properties": { + "contactIlsLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "content" + ] + }, + { + "private_apps": [ + "content" + ] + } + ], + "x-moar-primitive-count": 108, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown": { + "get": { + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations breakdown by Marketing Event internal identifier", + "description": "Read Marketing event's participations breakdown with optional filters by internal identifier marketingEventId.", + "operationId": "get-/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown_getParticipationsBreakdownByMarketingEventId", + "parameters": [ + { + "name": "marketingEventId", + "in": "path", + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "contactIdentifier", + "in": "query", + "description": "The identifier of the Contact. It may be email or internal id.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "associations", + "createdAt", + "id", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "required": [ + "contact", + "marketingEvent" + ], + "type": "object", + "properties": { + "marketingEvent": { + "required": [ + "marketingEventId", + "name" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "marketingEventId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "contact": { + "required": [ + "contactId", + "email" + ], + "type": "object", + "properties": { + "firstname": { + "type": "string" + }, + "contactId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "lastname": { + "type": "string" + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "properties": { + "required": [ + "attendanceState", + "occurredAt" + ], + "type": "object", + "properties": { + "occurredAt": { + "type": "integer", + "format": "int64" + }, + "attendancePercentage": { + "type": "string" + }, + "attendanceState": { + "type": "string", + "enum": [ + "REGISTERED", + "ATTENDED", + "CANCELLED", + "EMPTY", + "NO_SHOW" + ] + }, + "attendanceDurationSeconds": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create": { + "post": { + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by ContactId with Marketing Event External Ids", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their HubSpot contact IDs.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "operationId": "post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create_recordByContactIds", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberState", + "in": "path", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "required": [ + "interactionDateTime" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "vid" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert": { + "post": { + "tags": [ + "Subscriber State Changes" + ], + "summary": "Record a subscriber state by contact ID", + "description": "Record a subscriber state between multiple HubSpot contacts and a marketing event, using HubSpot contact IDs. Note that the contact must already exist in HubSpot; a contact will not be created.", + "operationId": "post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert_upsertByContactId", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberState", + "in": "path", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "required": [ + "interactionDateTime" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/{externalEventId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Get Marketing Event by External IDs", + "description": "Returns the details of a Marketing Event with the specified externalAccountId, externalEventId, if it exists.\n\nOnly Marketing Events created by the same app making the request can be retrieved.", + "operationId": "get-/marketing/v3/marketing-events/events/{externalEventId}_getDetails", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "attendees", + "cancellations", + "createdAt", + "eventName", + "eventOrganizer", + "externalEventId", + "id", + "noShows", + "registrants", + "updatedAt" + ], + "type": "object", + "properties": { + "registrants": { + "type": "integer", + "description": "The number of HubSpot contacts that registered for this marketing event.", + "format": "int32" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "attendees": { + "type": "integer", + "description": "The number of HubSpot contacts that attended this marketing event.", + "format": "int32" + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "noShows": { + "type": "integer", + "description": "The number of HubSpot contacts that registered for this marketing event, but did not attend. This field only had a value when the event is over.", + "format": "int32" + }, + "cancellations": { + "type": "integer", + "description": "The number of HubSpot contacts that registered for this marketing event, but later cancelled their registration.", + "format": "int32" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "put": { + "tags": [ + "Basic" + ], + "summary": "Create or update a marketing event", + "description": "Upserts a marketing event If there is an existing marketing event with the specified ID, it will be updated; otherwise a new event will be created.", + "operationId": "put-/marketing/v3/marketing-events/events/{externalEventId}_upsert", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "eventName", + "eventOrganizer", + "id", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 30, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Delete Marketing Event by External Ids", + "description": "Deletes the existing Marketing Event with the specified externalAccountId, externalEventId, if it exists.\n\nOnly Marketing Events created by the same app can be deleted.", + "operationId": "delete-/marketing/v3/marketing-events/events/{externalEventId}_archive", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update Marketing Event by External IDs", + "description": "Updates the details of an existing Marketing Event identified by its externalAccountId, externalEventId if it exists.\n\nOnly Marketing Events created by the same app can be updated.", + "operationId": "patch-/marketing/v3/marketing-events/events/{externalEventId}_update", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "eventName", + "eventOrganizer", + "id", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 28, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/upsert": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Create or Update Multiple Marketing Events", + "description": "Upserts multiple Marketing Events. If a Marketing Event with the specified ID already exists, it will be updated; otherwise, a new event will be created.\n\nOnly Marketing Events originally created by the same app can be updated.", + "operationId": "post-/marketing/v3/marketing-events/events/upsert_upsert", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "createdAt", + "eventName", + "eventOrganizer", + "id", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 30, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create": { + "post": { + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by Email with Marketing Event External Ids", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their email addresses.\n\nIf a contact does not exist, it will be automatically created. The contactProperties field is used exclusively for creating new contacts and will not update properties of existing contacts.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "operationId": "post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create_recordByContactEmails", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberState", + "in": "path", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "required": [ + "email", + "interactionDateTime" + ], + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "email", + "vid" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "email": { + "type": "string" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown": { + "get": { + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations breakdown by Marketing Event external identifier", + "description": "Read Marketing event's participations breakdown with optional filters by externalAccountId and externalEventId pair.", + "operationId": "get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown_getParticipationsBreakdownByExternalEventId", + "parameters": [ + { + "name": "externalAccountId", + "in": "path", + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "contactIdentifier", + "in": "query", + "description": "The identifier of the Contact. It may be email or internal id.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "associations", + "createdAt", + "id", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "required": [ + "contact", + "marketingEvent" + ], + "type": "object", + "properties": { + "marketingEvent": { + "required": [ + "marketingEventId", + "name" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "marketingEventId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "contact": { + "required": [ + "contactId", + "email" + ], + "type": "object", + "properties": { + "firstname": { + "type": "string" + }, + "contactId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "lastname": { + "type": "string" + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "properties": { + "required": [ + "attendanceState", + "occurredAt" + ], + "type": "object", + "properties": { + "occurredAt": { + "type": "integer", + "format": "int64" + }, + "attendancePercentage": { + "type": "string" + }, + "attendanceState": { + "type": "string", + "enum": [ + "REGISTERED", + "ATTENDED", + "CANCELLED", + "EMPTY", + "NO_SHOW" + ] + }, + "attendanceDurationSeconds": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/{objectId}": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Get Marketing Event by objectId", + "description": "Returns the details of a Marketing Event with the specified objectId, if it exists.", + "operationId": "get-/marketing/v3/marketing-events/{objectId}_getByObjectId", + "parameters": [ + { + "name": "objectId", + "in": "path", + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "registrants": { + "type": "integer", + "format": "int32" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "attendees": { + "type": "integer", + "format": "int32" + }, + "appInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "noShows": { + "type": "integer", + "format": "int32" + }, + "cancellations": { + "type": "integer", + "format": "int32" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "eventCancelled": { + "type": "boolean" + }, + "externalEventId": { + "type": "string" + }, + "eventStatus": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Basic" + ], + "summary": "Delete Marketing Event by objectId", + "description": "Deletes the existing Marketing Event with the specified objectId, if it exists.", + "operationId": "delete-/marketing/v3/marketing-events/{objectId}_archiveByObjectId", + "parameters": [ + { + "name": "objectId", + "in": "path", + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "patch": { + "tags": [ + "Basic" + ], + "summary": "Update Marketing Event by objectId", + "description": "Updates the details of an existing Marketing Event identified by its objectId, if it exists.", + "operationId": "patch-/marketing/v3/marketing-events/{objectId}_updateByObjectId", + "parameters": [ + { + "name": "objectId", + "in": "path", + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "customProperties" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "appInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 27, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists": { + "get": { + "tags": [ + "List Associations" + ], + "summary": "Get lists associated with a marketing event", + "description": "Gets lists associated with a marketing event by external account id and external event id", + "operationId": "get-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists_getAllByExternalAccountAndEventIds", + "parameters": [ + { + "name": "externalAccountId", + "in": "path", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "processingType": { + "type": "string" + }, + "objectTypeId": { + "type": "string" + }, + "updatedById": { + "type": "string" + }, + "filtersUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "listId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "processingStatus": { + "type": "string" + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "createdById": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/associations/{marketingEventId}/lists": { + "get": { + "tags": [ + "List Associations" + ], + "summary": "Get lists associated with a marketing event", + "description": "Gets lists associated with a marketing event by marketing event id", + "operationId": "get-/marketing/v3/marketing-events/associations/{marketingEventId}/lists_getAllByMarketingEventId", + "parameters": [ + { + "name": "marketingEventId", + "in": "path", + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "processingType": { + "type": "string" + }, + "objectTypeId": { + "type": "string" + }, + "updatedById": { + "type": "string" + }, + "filtersUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "listId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "processingStatus": { + "type": "string" + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "createdById": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create": { + "post": { + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by Email with Marketing Event Object Id", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their email addresses.\n\nIf a contact does not exist, it will be automatically created. The contactProperties field is used exclusively for creating new contacts and will not update properties of existing contacts.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "operationId": "post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create_recordByEmail", + "parameters": [ + { + "name": "objectId", + "in": "path", + "description": "The internal ID of the marketing event in HubSpot", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberState", + "in": "path", + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "required": [ + "email", + "interactionDateTime" + ], + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "email", + "vid" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "email": { + "type": "string" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/": { + "get": { + "tags": [ + "Basic" + ], + "summary": "Get all marketing event", + "description": "Returns all Marketing Events available on the portal, along with their properties, regardless of whether they were created manually or through the application.\n\nThe marketing events returned by this endpoint are sorted by objectId.", + "operationId": "get-/marketing/v3/marketing-events/_getAll", + "parameters": [ + { + "name": "after", + "in": "query", + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "registrants": { + "type": "integer", + "format": "int32" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "attendees": { + "type": "integer", + "format": "int32" + }, + "appInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "noShows": { + "type": "integer", + "format": "int32" + }, + "cancellations": { + "type": "integer", + "format": "int32" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "eventCancelled": { + "type": "boolean" + }, + "externalEventId": { + "type": "string" + }, + "eventStatus": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create": { + "post": { + "tags": [ + "Add event attendees" + ], + "summary": "Record Participants by ContactId with Marketing Event Object Id", + "description": "Records the participation of multiple HubSpot contacts in a Marketing Event using their HubSpot contact IDs.\n\nAdditional Functionality:\n- Adds a timeline event to the contacts.\n\nAllowed Properties:\nFor the state \"attend\":\n- joinedAt\n- leftAt", + "operationId": "post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create_recordByContactId", + "parameters": [ + { + "name": "objectId", + "in": "path", + "description": "The internal id of the marketing event in HubSpot", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberState", + "in": "path", + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "required": [ + "interactionDateTime" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "vid" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/batch/update": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Update Multiple Marketing Events by ObjectId", + "description": "Updates multiple Marketing Events on the portal based on their objectId, if they exist.", + "operationId": "post-/marketing/v3/marketing-events/batch/update_updateByObjectId", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "customProperties", + "objectId" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "appInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "207": { + "description": "multiple statuses", + "content": { + "application/json": { + "schema": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "appInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "errors": { + "type": "array", + "items": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 28, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/batch/archive": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Delete Multiple Marketing Events by ObjectId", + "description": "Deletes multiple Marketing Events from the portal based on their objectId, if they exist.\n\nResponses:\n204: Returned if all specified Marketing Events were successfully deleted.\n207: Returned if some objectIds did not correspond to any existing Marketing Events.", + "operationId": "post-/marketing/v3/marketing-events/batch/archive_archiveByObjectId", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "objectId": { + "type": "string" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}": { + "get": { + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations counters by Marketing Event external identifier", + "description": "Read Marketing event's participations counters by externalAccountId and externalEventId pair.", + "operationId": "get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}_getParticipationsCountersByEventExternalId", + "parameters": [ + { + "name": "externalAccountId", + "in": "path", + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "attended", + "cancelled", + "noShows", + "registered" + ], + "type": "object", + "properties": { + "attended": { + "type": "integer", + "format": "int32" + }, + "registered": { + "type": "integer", + "format": "int32" + }, + "cancelled": { + "type": "integer", + "format": "int32" + }, + "noShows": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/{externalEventId}/identifiers": { + "get": { + "tags": [ + "Identifiers" + ], + "summary": "Find Marketing Events by External Event Id", + "description": "This endpoint searches the portal for all Marketing Events whose externalEventId matches the value provided in the request.\n\nIt retrieves the objectId and additional event details for each matching Marketing Event.\n\nSince multiple Marketing Events can have the same externalEventId, the endpoint returns all matching results.\n\nNote: Marketing Events become searchable by externalEventId a few minutes after creation.", + "operationId": "get-/marketing/v3/marketing-events/{externalEventId}/identifiers_searchPortalEvents", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "required": [ + "externalEventId", + "marketingEventName", + "objectId" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "appInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "objectId": { + "type": "string" + }, + "marketingEventName": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/participations/{marketingEventId}": { + "get": { + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations counters by Marketing Event internal identifier", + "description": "Read Marketing event's participations counters by internal identifier marketingEventId.", + "operationId": "get-/marketing/v3/marketing-events/participations/{marketingEventId}_getParticipationsCountersByMarketingEventId", + "parameters": [ + { + "name": "marketingEventId", + "in": "path", + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "attended", + "cancelled", + "noShows", + "registered" + ], + "type": "object", + "properties": { + "attended": { + "type": "integer", + "format": "int32" + }, + "registered": { + "type": "integer", + "format": "int32" + }, + "cancelled": { + "type": "integer", + "format": "int32" + }, + "noShows": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/delete": { + "post": { + "tags": [ + "Batch" + ], + "summary": "Delete Multiple Marketing Events by External Ids", + "description": "Deletes multiple Marketing Events based on externalAccountId, externalEventId, and appId.\n\nOnly Marketing Events created by the same apps will be deleted; events from other apps cannot be removed by this endpoint. ", + "operationId": "post-/marketing/v3/marketing-events/events/delete_archive", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "required": [ + "appId", + "externalAccountId", + "externalEventId" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "appId": { + "type": "integer", + "description": "The id of the application that created the marketing event in HubSpot.", + "format": "int32" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 3, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/{externalEventId}/cancel": { + "post": { + "tags": [ + "Change property" + ], + "summary": "Mark a marketing event as cancelled", + "description": "Mark a marketing event as cancelled.", + "operationId": "post-/marketing/v3/marketing-events/events/{externalEventId}/cancel_cancel", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "eventName", + "eventOrganizer" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "The URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}": { + "put": { + "tags": [ + "List Associations" + ], + "summary": "Associate a list with a marketing event", + "description": "Associates a list with a marketing event by marketing event id and ILS list id", + "operationId": "put-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_associateByMarketingEventId", + "parameters": [ + { + "name": "marketingEventId", + "in": "path", + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "listId", + "in": "path", + "description": "The ILS ID of the list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "List Associations" + ], + "summary": "Disassociate a list from a marketing event", + "description": "Disassociates a list from a marketing event by marketing event id and ILS list id", + "operationId": "delete-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_disassociateByMarketingEventId", + "parameters": [ + { + "name": "marketingEventId", + "in": "path", + "description": "The internal id of the marketing event in HubSpot.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "listId", + "in": "path", + "description": "The ILS ID of the list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert": { + "post": { + "tags": [ + "Subscriber State Changes" + ], + "summary": "Record a subscriber state by contact email", + "description": "Record a subscriber state between multiple HubSpot contacts and a marketing event, using contact email addresses. Note that the contact must already exist in HubSpot; a contact will not be created. The contactProperties field is used only when creating a new contact. These properties will not update existing contacts. ", + "operationId": "post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert_upsertByContactEmail", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberState", + "in": "path", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "required": [ + "email", + "interactionDateTime" + ], + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + } + } + } + } + } + }, + "required": true + }, + "responses": { + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}": { + "put": { + "tags": [ + "List Associations" + ], + "summary": "Associate a list with a marketing event", + "description": "Associates a list with a marketing event by external account id, external event id, and ILS list id", + "operationId": "put-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_associateByExternalAccountAndEventIds", + "parameters": [ + { + "name": "externalAccountId", + "in": "path", + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "listId", + "in": "path", + "description": "The ILS ID of the list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "List Associations" + ], + "summary": "Disassociate a list from a marketing event", + "description": "Disassociates a list from a marketing event by external account id, external event id, and ILS list id", + "operationId": "delete-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_disassociateByExternalAccountAndEventIds", + "parameters": [ + { + "name": "externalAccountId", + "in": "path", + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "listId", + "in": "path", + "description": "The ILS ID of the list.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/{externalEventId}/complete": { + "post": { + "tags": [ + "Change property" + ], + "summary": "Mark a marketing event as completed", + "description": "Mark a marketing event as completed", + "operationId": "post-/marketing/v3/marketing-events/events/{externalEventId}/complete_complete", + "parameters": [ + { + "name": "externalEventId", + "in": "path", + "description": "The id of the marketing event in the external event application.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "externalAccountId", + "in": "query", + "description": "The accountId that is associated with this marketing event in the external event application.", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "endDateTime", + "startDateTime" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "eventName", + "eventOrganizer" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "The URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events": { + "post": { + "tags": [ + "Basic" + ], + "summary": "Create a marketing event", + "description": "Creates a new marketing event in HubSpot", + "operationId": "post-/marketing/v3/marketing-events/events_create", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "eventName", + "eventOrganizer" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "The URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "crm.objects.marketing_events.write" + ] + }, + { + "private_apps": [ + "crm.objects.marketing_events.write" + ] + } + ], + "x-moar-primitive-count": 30, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown": { + "get": { + "tags": [ + "Retrieve Participant State" + ], + "summary": "Read participations breakdown by Contact identifier", + "description": "Read Contact's participations by identifier - email or internal id.", + "operationId": "get-/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown_getParticipationsBreakdownByContactId", + "parameters": [ + { + "name": "contactIdentifier", + "in": "path", + "description": "The identifier of the Contact. It may be email or internal id.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "The limit for response size. The default value is 10, the max number is 100", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "after", + "in": "query", + "description": "The cursor indicating the position of the last retrieved item.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "associations", + "createdAt", + "id", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "required": [ + "contact", + "marketingEvent" + ], + "type": "object", + "properties": { + "marketingEvent": { + "required": [ + "marketingEventId", + "name" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "marketingEventId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "contact": { + "required": [ + "contactId", + "email" + ], + "type": "object", + "properties": { + "firstname": { + "type": "string" + }, + "contactId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "lastname": { + "type": "string" + } + } + } + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "properties": { + "required": [ + "attendanceState", + "occurredAt" + ], + "type": "object", + "properties": { + "occurredAt": { + "type": "integer", + "format": "int64" + }, + "attendancePercentage": { + "type": "string" + }, + "attendanceState": { + "type": "string", + "enum": [ + "REGISTERED", + "ATTENDED", + "CANCELLED", + "EMPTY", + "NO_SHOW" + ] + }, + "attendanceDurationSeconds": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/{appId}/settings": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Retrieve the application settings", + "description": "Retrieve the current settings for the application.", + "operationId": "get-/marketing/v3/marketing-events/{appId}/settings_getAll", + "parameters": [ + { + "name": "appId", + "in": "path", + "description": "The id of the application to retrieve the settings for.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "appId", + "eventDetailsUrl" + ], + "type": "object", + "properties": { + "appId": { + "type": "integer", + "description": "The id of the application the settings are for", + "format": "int32" + }, + "eventDetailsUrl": { + "type": "string", + "description": "The url that will be used to fetch marketing event details by id" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Settings" + ], + "summary": "Update the application settings", + "description": "Create or update the current settings for the application.", + "operationId": "post-/marketing/v3/marketing-events/{appId}/settings_update", + "parameters": [ + { + "name": "appId", + "in": "path", + "description": "The id of the application to update the settings for.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "eventDetailsUrl" + ], + "type": "object", + "properties": { + "eventDetailsUrl": { + "type": "string", + "description": "The url that will be used to fetch marketing event details by id. Must contain a `%s` character sequence that will be substituted with the event id. For example: `https://my.event.app/events/%s`" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "appId", + "eventDetailsUrl" + ], + "type": "object", + "properties": { + "appId": { + "type": "integer", + "description": "The id of the application the settings are for", + "format": "int32" + }, + "eventDetailsUrl": { + "type": "string", + "description": "The url that will be used to fetch marketing event details by id" + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "developer_hapikey": [] + } + ], + "x-moar-primitive-count": 1, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/marketing-events/events/search": { + "get": { + "tags": [ + "Identifiers" + ], + "summary": "Find App-Specific Marketing Events by External Event Id", + "description": "Retrieves Marketing Events where the externalEventId matches the value provided in the request, limited to events created by the app making the request.\n\nMarketing Events created by other apps will not be included in the results.", + "operationId": "get-/marketing/v3/marketing-events/events/search_doSearch", + "parameters": [ + { + "name": "q", + "in": "query", + "description": "The id of the marketing event in the external event application (externalEventId)", + "required": true, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "required": [ + "appId", + "externalAccountId", + "externalEventId", + "objectId" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "appId": { + "type": "integer", + "format": "int32" + }, + "objectId": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "private_apps": [ + "crm.objects.marketing_events.read" + ] + }, + { + "oauth2": [ + "crm.objects.marketing_events.read" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v4/email/single-send": { + "post": { + "tags": [ + "Single_Send" + ], + "summary": "Send an email", + "description": "Send a template email to a specific recipient.", + "operationId": "post-/marketing/v4/email/single-send", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "emailId", + "message" + ], + "type": "object", + "properties": { + "customProperties": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + }, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "type": "integer", + "description": "The content ID for the email, which can be found in email tool UI.", + "format": "int64" + }, + "message": { + "required": [ + "to" + ], + "type": "object", + "properties": { + "cc": { + "type": "array", + "description": "List of email addresses to send as Cc.", + "items": { + "type": "string" + } + }, + "sendId": { + "type": "string", + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "type": "array", + "description": "List of email addresses to send as Bcc.", + "items": { + "type": "string" + } + }, + "replyTo": { + "type": "array", + "description": "List of Reply-To header values for the email.", + "items": { + "type": "string" + } + }, + "from": { + "type": "string", + "description": "The From header for the email." + }, + "to": { + "type": "string", + "description": "The recipient of the email." + } + }, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "description": "A request to send a single email asynchronously." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "status", + "statusId" + ], + "type": "object", + "properties": { + "eventId": { + "required": [ + "created", + "id" + ], + "type": "object", + "properties": { + "created": { + "type": "string", + "description": "Time of event creation.", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Identifier of event.", + "format": "uuid" + } + }, + "description": "The ID of a send event." + }, + "completedAt": { + "type": "string", + "description": "Time when the send was completed.", + "format": "date-time" + }, + "statusId": { + "type": "string", + "description": "Identifier used to query the status of the send." + }, + "sendResult": { + "type": "string", + "description": "Result of the send.", + "enum": [ + "SENT", + "IDEMPOTENT_IGNORE", + "QUEUED", + "IDEMPOTENT_FAIL", + "THROTTLED", + "EMAIL_DISABLED", + "PORTAL_SUSPENDED", + "INVALID_TO_ADDRESS", + "BLOCKED_DOMAIN", + "PREVIOUSLY_BOUNCED", + "EMAIL_UNCONFIRMED", + "PREVIOUS_SPAM", + "PREVIOUSLY_UNSUBSCRIBED_MESSAGE", + "PREVIOUSLY_UNSUBSCRIBED_PORTAL", + "INVALID_FROM_ADDRESS", + "CAMPAIGN_CANCELLED", + "VALIDATION_FAILED", + "MTA_IGNORE", + "BLOCKED_ADDRESS", + "PORTAL_OVER_LIMIT", + "PORTAL_EXPIRED", + "PORTAL_MISSING_MARKETING_SCOPE", + "MISSING_TEMPLATE_PROPERTIES", + "MISSING_REQUIRED_PARAMETER", + "PORTAL_AUTHENTICATION_FAILURE", + "MISSING_CONTENT", + "CORRUPT_INPUT", + "TEMPLATE_RENDER_EXCEPTION", + "GRAYMAIL_SUPPRESSED", + "UNCONFIGURED_SENDING_DOMAIN", + "UNDELIVERABLE", + "CANCELLED_ABUSE", + "QUARANTINED_ADDRESS", + "ADDRESS_ONLY_ACCEPTED_ON_PROD", + "PORTAL_NOT_AUTHORIZED_FOR_APPLICATION", + "ADDRESS_LIST_BOMBED", + "ADDRESS_OPTED_OUT", + "RECIPIENT_FATIGUE_SUPPRESSED", + "TOO_MANY_RECIPIENTS", + "PREVIOUSLY_UNSUBSCRIBED_BRAND", + "NON_MARKETABLE_CONTACT", + "PREVIOUSLY_UNSUBSCRIBED_BUSINESS_UNIT", + "GDPR_DOI_ENABLED", + "HUBL_LIMIT_EXCEEDED", + "LOW_CONTACT_QUALITY_SCORE" + ] + }, + "requestedAt": { + "type": "string", + "description": "Time when the send was requested.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "Time when the send began processing.", + "format": "date-time" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string", + "description": "Status of the send request.", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Describes the status of an email send request." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "marketing-email" + ] + }, + { + "private_apps": [ + "marketing-email" + ] + }, + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "daily", + "ten-secondly" + ], + "x-moar-primitive-count": 7, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/transactional/single-email/send": { + "post": { + "tags": [ + "Single send" + ], + "summary": "Send a single transactional email asynchronously.", + "description": "Asynchronously send a transactional email. Returns the status of the email send with a statusId that can be used to continuously query for the status using the Email Send Status API.", + "operationId": "post-/marketing/v3/transactional/single-email/send_sendEmail", + "parameters": [], + "requestBody": { + "description": "A request object describing the email to send.", + "content": { + "application/json": { + "schema": { + "required": [ + "emailId", + "message" + ], + "type": "object", + "properties": { + "customProperties": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + }, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "type": "integer", + "description": "The content ID for the transactional email, which can be found in email tool UI.", + "format": "int32" + }, + "message": { + "required": [ + "to" + ], + "type": "object", + "properties": { + "cc": { + "type": "array", + "description": "List of email addresses to send as Cc.", + "items": { + "type": "string" + } + }, + "sendId": { + "type": "string", + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "type": "array", + "description": "List of email addresses to send as Bcc.", + "items": { + "type": "string" + } + }, + "replyTo": { + "type": "array", + "description": "List of Reply-To header values for the email.", + "items": { + "type": "string" + } + }, + "from": { + "type": "string", + "description": "The From header for the email." + }, + "to": { + "type": "string", + "description": "The recipient of the email." + } + }, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "description": "A request to send a single transactional email asynchronously." + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "status", + "statusId" + ], + "type": "object", + "properties": { + "eventId": { + "required": [ + "created", + "id" + ], + "type": "object", + "properties": { + "created": { + "type": "string", + "description": "Time of event creation.", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Identifier of event.", + "format": "uuid" + } + }, + "description": "The ID of a send event." + }, + "completedAt": { + "type": "string", + "description": "Time when the send was completed.", + "format": "date-time" + }, + "statusId": { + "type": "string", + "description": "Identifier used to query the status of the send." + }, + "sendResult": { + "type": "string", + "description": "Result of the send.", + "enum": [ + "SENT", + "IDEMPOTENT_IGNORE", + "QUEUED", + "IDEMPOTENT_FAIL", + "THROTTLED", + "EMAIL_DISABLED", + "PORTAL_SUSPENDED", + "INVALID_TO_ADDRESS", + "BLOCKED_DOMAIN", + "PREVIOUSLY_BOUNCED", + "EMAIL_UNCONFIRMED", + "PREVIOUS_SPAM", + "PREVIOUSLY_UNSUBSCRIBED_MESSAGE", + "PREVIOUSLY_UNSUBSCRIBED_PORTAL", + "INVALID_FROM_ADDRESS", + "CAMPAIGN_CANCELLED", + "VALIDATION_FAILED", + "MTA_IGNORE", + "BLOCKED_ADDRESS", + "PORTAL_OVER_LIMIT", + "PORTAL_EXPIRED", + "PORTAL_MISSING_MARKETING_SCOPE", + "MISSING_TEMPLATE_PROPERTIES", + "MISSING_REQUIRED_PARAMETER", + "PORTAL_AUTHENTICATION_FAILURE", + "MISSING_CONTENT", + "CORRUPT_INPUT", + "TEMPLATE_RENDER_EXCEPTION", + "GRAYMAIL_SUPPRESSED", + "UNCONFIGURED_SENDING_DOMAIN", + "UNDELIVERABLE", + "CANCELLED_ABUSE", + "QUARANTINED_ADDRESS", + "ADDRESS_ONLY_ACCEPTED_ON_PROD", + "PORTAL_NOT_AUTHORIZED_FOR_APPLICATION", + "ADDRESS_LIST_BOMBED", + "ADDRESS_OPTED_OUT", + "RECIPIENT_FATIGUE_SUPPRESSED", + "TOO_MANY_RECIPIENTS", + "PREVIOUSLY_UNSUBSCRIBED_BRAND", + "NON_MARKETABLE_CONTACT", + "PREVIOUSLY_UNSUBSCRIBED_BUSINESS_UNIT", + "GDPR_DOI_ENABLED" + ] + }, + "requestedAt": { + "type": "string", + "description": "Time when the send was requested.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "Time when the send began processing.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "Status of the send request.", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Describes the status of an email send request." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-hubspot-rate-limit-exemptions": [ + "daily", + "ten-secondly" + ], + "x-moar-primitive-count": 7, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/transactional/smtp-tokens": { + "get": { + "tags": [ + "Public SMTP tokens" + ], + "summary": "Query SMTP API tokens by campaign name or an emailCampaignId.", + "description": "Query multiple SMTP API tokens by campaign name or a single token by emailCampaignId.", + "operationId": "get-/marketing/v3/transactional/smtp-tokens_getTokensPage", + "parameters": [ + { + "name": "campaignName", + "in": "query", + "description": "A name for the campaign tied to the SMTP API token.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "emailCampaignId", + "in": "query", + "description": "Identifier assigned to the campaign provided during the token creation.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "description": "Starting point to get the next set of results.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of tokens to return.", + "required": false, + "style": "form", + "explode": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "type": "object", + "properties": { + "next": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + } + } + }, + "results": { + "type": "array", + "items": { + "required": [ + "campaignName", + "createContact", + "createdAt", + "createdBy", + "emailCampaignId", + "id" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp generated when a token is created.", + "format": "date-time" + }, + "password": { + "type": "string", + "description": "Password used to log into the HubSpot SMTP server." + }, + "createdBy": { + "type": "string", + "description": "Email address of the user that sent the token creation request." + }, + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "id": { + "type": "string", + "description": "User name to log into the HubSpot SMTP server." + }, + "emailCampaignId": { + "type": "string", + "description": "Identifier assigned to the campaign provided in the token creation request." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the token." + } + }, + "description": "A SMTP API token provides both an ID and password that can be used to send email through the HubSpot SMTP API." + } + } + } + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "post": { + "tags": [ + "Public SMTP tokens" + ], + "summary": "Create a SMTP API token.", + "description": "Create a SMTP API token.", + "operationId": "post-/marketing/v3/transactional/smtp-tokens_createToken", + "parameters": [], + "requestBody": { + "description": "A request object that includes the campaign name tied to the token and whether contacts should be created for email recipients.", + "content": { + "application/json": { + "schema": { + "required": [ + "campaignName", + "createContact" + ], + "type": "object", + "properties": { + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the SMTP API token." + } + }, + "description": "A request object to create a SMTP API token" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "campaignName", + "createContact", + "createdAt", + "createdBy", + "emailCampaignId", + "id" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp generated when a token is created.", + "format": "date-time" + }, + "password": { + "type": "string", + "description": "Password used to log into the HubSpot SMTP server." + }, + "createdBy": { + "type": "string", + "description": "Email address of the user that sent the token creation request." + }, + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "id": { + "type": "string", + "description": "User name to log into the HubSpot SMTP server." + }, + "emailCampaignId": { + "type": "string", + "description": "Identifier assigned to the campaign provided in the token creation request." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the token." + } + }, + "description": "A SMTP API token provides both an ID and password that can be used to send email through the HubSpot SMTP API." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-moar-primitive-count": 2, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset": { + "post": { + "tags": [ + "Public SMTP tokens" + ], + "summary": "Reset the password of an existing token.", + "description": "Allows the creation of a replacement password for a given token. Once the password is successfully reset, the old password for the token will be invalid.", + "operationId": "post-/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset_resetPassword", + "parameters": [ + { + "name": "tokenId", + "in": "path", + "description": "Identifier generated when a token is created.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "campaignName", + "createContact", + "createdAt", + "createdBy", + "emailCampaignId", + "id" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp generated when a token is created.", + "format": "date-time" + }, + "password": { + "type": "string", + "description": "Password used to log into the HubSpot SMTP server." + }, + "createdBy": { + "type": "string", + "description": "Email address of the user that sent the token creation request." + }, + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "id": { + "type": "string", + "description": "User name to log into the HubSpot SMTP server." + }, + "emailCampaignId": { + "type": "string", + "description": "Identifier assigned to the campaign provided in the token creation request." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the token." + } + }, + "description": "A SMTP API token provides both an ID and password that can be used to send email through the HubSpot SMTP API." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + }, + "/marketing/v3/transactional/smtp-tokens/{tokenId}": { + "get": { + "tags": [ + "Public SMTP tokens" + ], + "summary": "Query a single token by ID.", + "description": "Query a single token by ID.", + "operationId": "get-/marketing/v3/transactional/smtp-tokens/{tokenId}_getTokenById", + "parameters": [ + { + "name": "tokenId", + "in": "path", + "description": "Identifier generated when a token is created.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "required": [ + "campaignName", + "createContact", + "createdAt", + "createdBy", + "emailCampaignId", + "id" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp generated when a token is created.", + "format": "date-time" + }, + "password": { + "type": "string", + "description": "Password used to log into the HubSpot SMTP server." + }, + "createdBy": { + "type": "string", + "description": "Email address of the user that sent the token creation request." + }, + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "id": { + "type": "string", + "description": "User name to log into the HubSpot SMTP server." + }, + "emailCampaignId": { + "type": "string", + "description": "Identifier assigned to the campaign provided in the token creation request." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the token." + } + }, + "description": "A SMTP API token provides both an ID and password that can be used to send email through the HubSpot SMTP API." + } + } + } + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + }, + "delete": { + "tags": [ + "Public SMTP tokens" + ], + "summary": "Delete a single token by ID.", + "description": "Delete a single token by ID.", + "operationId": "delete-/marketing/v3/transactional/smtp-tokens/{tokenId}_archiveToken", + "parameters": [ + { + "name": "tokenId", + "in": "path", + "description": "Identifier generated when a token is created.", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No content", + "content": {} + }, + "default": { + "$ref": "#/components/responses/Error" + } + }, + "security": [ + { + "oauth2": [ + "transactional-email" + ] + }, + { + "private_apps": [ + "transactional-email" + ] + } + ], + "x-moar-primitive-count": 0, + "x-moar-complexity-skipped": false + } + } + }, + "components": { + "schemas": { + "StandardError": { + "required": [ + "category", + "context", + "errors", + "links", + "message", + "status" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "object", + "properties": {}, + "description": "A more specific error category within each main category.", + "example": "" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Additional context-specific information related to the error.", + "example": "" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "URLs linking to documentation or resources associated with the error.", + "example": "" + }, + "id": { + "type": "string", + "description": "A unique ID for the error instance.", + "example": "" + }, + "category": { + "type": "string", + "description": "The main category of the error.", + "example": "" + }, + "message": { + "type": "string", + "description": "A human-readable string describing the error and possible remediation steps.", + "example": "" + }, + "errors": { + "type": "array", + "description": "The detailed error objects.", + "example": "", + "items": { + "$ref": "#/components/schemas/ErrorDetail" + } + }, + "status": { + "type": "string", + "description": "The HTTP status code associated with the error.", + "example": "" + } + }, + "description": "Ye olde error" + }, + "PublicCampaignBatchUpdateItem": { + "required": [ + "id", + "properties" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "CollectionResponsePublicCampaignAssetForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignAsset" + } + } + } + }, + "PublicCampaignReadInput": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "BatchResponsePublicCampaignWithAssetsWithErrors": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignWithAssets" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "BatchInputPublicCampaignReadInput": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignReadInput" + } + } + } + }, + "BatchResponsePublicCampaignWithAssets": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignWithAssets" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "BatchResponsePublicCampaignWithErrors": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaign" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "ErrorDetail": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "code": { + "type": "string", + "description": "The status code associated with the error detail" + }, + "in": { + "type": "string", + "description": "The name of the field or parameter in which the error was found." + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate" + } + } + }, + "ForwardPaging": { + "type": "object", + "properties": { + "next": { + "$ref": "#/components/schemas/NextPage" + } + } + }, + "PublicSpendItem": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + }, + "BatchResponsePublicCampaign": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaign" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "PublicCampaignWithAssets": { + "required": [ + "assets", + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicBusinessUnit" + } + }, + "assets": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/CollectionResponsePublicCampaignAsset" + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "PublicBudgetTotals": { + "required": [ + "budgetItems", + "currencyCode", + "spendItems" + ], + "type": "object", + "properties": { + "spendItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicSpendItem" + } + }, + "budgetTotal": { + "type": "number" + }, + "remainingBudget": { + "type": "number" + }, + "spendTotal": { + "type": "number" + }, + "currencyCode": { + "type": "string", + "enum": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BOV", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BZD", + "CAD", + "CDF", + "CHE", + "CHF", + "CHW", + "CLF", + "CLP", + "CNY", + "COP", + "COU", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SLL", + "SOS", + "SRD", + "SSP", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "USN", + "UYI", + "UYU", + "UZS", + "VEF", + "VND", + "VUV", + "WST", + "XAF", + "XAG", + "XAU", + "XBA", + "XBB", + "XBC", + "XBD", + "XCD", + "XDR", + "XOF", + "XPD", + "XPF", + "XPT", + "XSU", + "XUA", + "YER", + "ZAR", + "ZMW", + "ZWL" + ] + }, + "budgetItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicBudgetItem" + } + } + } + }, + "BatchInputPublicCampaignDeleteInput": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignDeleteInput" + } + } + } + }, + "CollectionResponsePublicCampaignAsset": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignAsset" + } + } + } + }, + "PublicCampaignDeleteInput": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "PublicSpendItemInput": { + "required": [ + "amount", + "name", + "order" + ], + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicCampaignInput": { + "required": [ + "properties" + ], + "type": "object", + "properties": { + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "MetricsCounters": { + "required": [ + "influencedContacts", + "newContactsFirstTouch", + "newContactsLastTouch", + "sessions" + ], + "type": "object", + "properties": { + "sessions": { + "type": "integer", + "format": "int32" + }, + "newContactsFirstTouch": { + "type": "integer", + "format": "int32" + }, + "influencedContacts": { + "type": "integer", + "format": "int32" + }, + "newContactsLastTouch": { + "type": "integer", + "format": "int32" + } + } + }, + "PublicBudgetItem": { + "required": [ + "amount", + "createdAt", + "id", + "name", + "order", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + } + } + }, + "BatchInputPublicCampaignInput": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignInput" + } + } + } + }, + "CollectionResponseWithTotalPublicCampaignForwardPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaign" + } + } + } + }, + "PublicBudgetItemInput": { + "required": [ + "amount", + "name", + "order" + ], + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "order": { + "type": "integer", + "format": "int32" + } + } + }, + "Paging": { + "type": "object", + "properties": { + "next": { + "$ref": "#/components/schemas/NextPage" + }, + "prev": { + "$ref": "#/components/schemas/PreviousPage" + } + }, + "description": "Contains information pagination of results." + }, + "Error": { + "required": [ + "category", + "correlationId", + "message" + ], + "type": "object", + "properties": { + "subCategory": { + "type": "string", + "description": "A specific category that contains more specific detail about the error" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "Context about the error condition", + "example": { + "invalidPropertyName": [ + "propertyValue" + ], + "missingScopes": [ + "scope1", + "scope2" + ] + } + }, + "correlationId": { + "type": "string", + "description": "A unique identifier for the request. Include this value with any error reports or support tickets", + "format": "uuid", + "example": "aeb5f871-7f07-4993-9211-075dc63e7cbf" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of link names to associated URIs containing documentation about the error or recommended remediation steps" + }, + "message": { + "type": "string", + "description": "A human readable message describing the error along with remediation steps where appropriate", + "example": "An error occurred" + }, + "category": { + "type": "string", + "description": "The error category" + }, + "errors": { + "type": "array", + "description": "further information about the error", + "items": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + }, + "example": { + "message": "Invalid input (details will vary based on the error)", + "correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf", + "category": "VALIDATION_ERROR", + "links": { + "knowledge-base": "https://www.hubspot.com/products/service/knowledge-base" + } + } + }, + "CollectionResponseContactReferenceForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContactReference" + } + } + } + }, + "PublicCampaignAsset": { + "required": [ + "id", + "metrics" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "type": "number" + } + } + } + }, + "RevenueAttributionAggregate": { + "type": "object", + "properties": { + "contactsNumber": { + "type": "integer", + "format": "int32" + }, + "dealAmount": { + "type": "number" + }, + "dealsNumber": { + "type": "integer", + "format": "int32" + }, + "revenueAmount": { + "type": "number" + }, + "currencyCode": { + "type": "string", + "enum": [ + "AED", + "AFN", + "ALL", + "AMD", + "ANG", + "AOA", + "ARS", + "AUD", + "AWG", + "AZN", + "BAM", + "BBD", + "BDT", + "BGN", + "BHD", + "BIF", + "BMD", + "BND", + "BOB", + "BOV", + "BRL", + "BSD", + "BTN", + "BWP", + "BYN", + "BZD", + "CAD", + "CDF", + "CHE", + "CHF", + "CHW", + "CLF", + "CLP", + "CNY", + "COP", + "COU", + "CRC", + "CUC", + "CUP", + "CVE", + "CZK", + "DJF", + "DKK", + "DOP", + "DZD", + "EGP", + "ERN", + "ETB", + "EUR", + "FJD", + "FKP", + "GBP", + "GEL", + "GHS", + "GIP", + "GMD", + "GNF", + "GTQ", + "GYD", + "HKD", + "HNL", + "HRK", + "HTG", + "HUF", + "IDR", + "ILS", + "INR", + "IQD", + "IRR", + "ISK", + "JMD", + "JOD", + "JPY", + "KES", + "KGS", + "KHR", + "KMF", + "KPW", + "KRW", + "KWD", + "KYD", + "KZT", + "LAK", + "LBP", + "LKR", + "LRD", + "LSL", + "LYD", + "MAD", + "MDL", + "MGA", + "MKD", + "MMK", + "MNT", + "MOP", + "MRU", + "MUR", + "MVR", + "MWK", + "MXN", + "MXV", + "MYR", + "MZN", + "NAD", + "NGN", + "NIO", + "NOK", + "NPR", + "NZD", + "OMR", + "PAB", + "PEN", + "PGK", + "PHP", + "PKR", + "PLN", + "PYG", + "QAR", + "RON", + "RSD", + "RUB", + "RWF", + "SAR", + "SBD", + "SCR", + "SDG", + "SEK", + "SGD", + "SHP", + "SLL", + "SOS", + "SRD", + "SSP", + "STN", + "SVC", + "SYP", + "SZL", + "THB", + "TJS", + "TMT", + "TND", + "TOP", + "TRY", + "TTD", + "TWD", + "TZS", + "UAH", + "UGX", + "USD", + "USN", + "UYI", + "UYU", + "UZS", + "VEF", + "VND", + "VUV", + "WST", + "XAF", + "XAG", + "XAU", + "XBA", + "XBB", + "XBC", + "XBD", + "XCD", + "XDR", + "XOF", + "XPD", + "XPF", + "XPT", + "XSU", + "XUA", + "YER", + "ZAR", + "ZMW", + "ZWL" + ] + } + } + }, + "BatchInputPublicCampaignBatchUpdateItem": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicCampaignBatchUpdateItem" + } + } + } + }, + "PreviousPage": { + "required": [ + "before" + ], + "type": "object", + "properties": { + "before": { + "type": "string", + "description": "A paging cursor token for retrieving previous pages.", + "example": "" + }, + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the previous pages' results.", + "example": "" + } + }, + "description": "specifies the paging information needed to retrieve the previous set of results in a paginated API response" + }, + "ContactReference": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "PublicBusinessUnit": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + } + } + }, + "NextPage": { + "required": [ + "after" + ], + "type": "object", + "properties": { + "link": { + "type": "string", + "description": "A URL that can be used to retrieve the next page results.", + "example": "" + }, + "after": { + "type": "string", + "description": "A paging cursor token for retrieving subsequent pages.", + "example": "" + } + }, + "description": "Specifies the paging information needed to retrieve the next set of results in a paginated API response" + }, + "PublicCampaign": { + "required": [ + "businessUnits", + "createdAt", + "id", + "properties", + "updatedAt" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "businessUnits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicBusinessUnit" + } + }, + "id": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "DependentField": { + "required": [ + "dependentCondition", + "dependentField" + ], + "type": "object", + "properties": { + "dependentCondition": { + "$ref": "#/components/schemas/DependentFieldFilter" + }, + "dependentField": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField" + }, + { + "$ref": "#/components/schemas/PhoneField" + }, + { + "$ref": "#/components/schemas/MobilePhoneField" + }, + { + "$ref": "#/components/schemas/SingleLineTextField" + }, + { + "$ref": "#/components/schemas/MultiLineTextField" + }, + { + "$ref": "#/components/schemas/NumberField" + }, + { + "$ref": "#/components/schemas/SingleCheckboxField" + }, + { + "$ref": "#/components/schemas/MultipleCheckboxesField" + }, + { + "$ref": "#/components/schemas/DropdownField" + }, + { + "$ref": "#/components/schemas/RadioField" + }, + { + "$ref": "#/components/schemas/DatepickerField" + }, + { + "$ref": "#/components/schemas/FileField" + }, + { + "$ref": "#/components/schemas/PaymentLinkRadioField" + } + ] + } + }, + "description": "A form field that will be displayed based on what the customer entered in another field." + }, + "FormDefinitionBase": { + "properties": {}, + "oneOf": [ + { + "$ref": "#/components/schemas/HubSpotFormDefinition" + } + ] + }, + "LegalConsentOptionsImplicitConsentToProcess": { + "title": "implicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LegalConsentCheckbox" + } + }, + "communicationConsentText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "implicit_consent_to_process", + "enum": [ + "implicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + "HubSpotFormDefinition": { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionBase" + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "id", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldGroup" + } + }, + "configuration": { + "$ref": "#/components/schemas/HubSpotFormConfiguration" + }, + "displayOptions": { + "$ref": "#/components/schemas/FormDisplayOptions" + }, + "legalConsentOptions": { + "oneOf": [ + { + "$ref": "#/components/schemas/LegalConsentOptionsNone" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsLegitimateInterest" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsExplicitConsentToProcess" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsImplicitConsentToProcess" + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + }, + "FormDisplayOptions": { + "required": [ + "renderRawHtml", + "style", + "submitButtonText", + "theme" + ], + "type": "object", + "properties": { + "renderRawHtml": { + "type": "boolean", + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "type": "string" + }, + "theme": { + "type": "string", + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ] + }, + "submitButtonText": { + "type": "string", + "description": "The text displayed on the form submit button." + }, + "style": { + "$ref": "#/components/schemas/FormStyle" + } + }, + "description": "Options for styling the form." + }, + "MultiLineTextField": { + "title": "multi_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multi_line_text", + "enum": [ + "multi_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a multiple-line text box." + }, + "MobilePhoneField": { + "title": "mobile_phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "mobile_phone", + "enum": [ + "mobile_phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a mobile phone number." + }, + "FormStyle": { + "required": [ + "backgroundWidth", + "fontFamily", + "helpTextColor", + "helpTextSize", + "labelTextColor", + "labelTextSize", + "legalConsentTextColor", + "legalConsentTextSize", + "submitAlignment", + "submitColor", + "submitFontColor", + "submitSize" + ], + "type": "object", + "properties": { + "labelTextSize": { + "type": "string" + }, + "legalConsentTextColor": { + "type": "string" + }, + "fontFamily": { + "type": "string" + }, + "legalConsentTextSize": { + "type": "string" + }, + "backgroundWidth": { + "type": "string" + }, + "helpTextSize": { + "type": "string" + }, + "submitFontColor": { + "type": "string" + }, + "labelTextColor": { + "type": "string" + }, + "submitAlignment": { + "type": "string", + "enum": [ + "left", + "right", + "center" + ] + }, + "submitSize": { + "type": "string" + }, + "helpTextColor": { + "type": "string" + }, + "submitColor": { + "type": "string" + } + }, + "description": "Styling options for the form" + }, + "CollectionResponseFormDefinitionBaseForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/HubSpotFormDefinition" + } + ] + } + } + } + }, + "DatepickerField": { + "title": "datepicker", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "datepicker", + "enum": [ + "datepicker" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used to select a date" + }, + "HubSpotFormConfiguration": { + "required": [ + "allowLinkToResetKnownValues", + "archivable", + "cloneable", + "createNewContactForNewEmail", + "editable", + "language", + "notifyContactOwner", + "notifyRecipients", + "postSubmitAction", + "prePopulateKnownValues", + "recaptchaEnabled" + ], + "type": "object", + "properties": { + "createNewContactForNewEmail": { + "type": "boolean", + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "type": "boolean", + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "type": "boolean", + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LifecycleStage" + } + }, + "postSubmitAction": { + "$ref": "#/components/schemas/FormPostSubmitAction" + }, + "language": { + "type": "string", + "description": "The language of the form.", + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ] + }, + "prePopulateKnownValues": { + "type": "boolean", + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "type": "boolean", + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "type": "boolean", + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "type": "boolean", + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "type": "boolean", + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "type": "array", + "description": "The list of user IDs to receive a notification email when a submission is received.", + "items": { + "type": "string" + } + } + } + }, + "LegalConsentOptionsExplicitConsentToProcess": { + "title": "explicit_consent_to_process", + "required": [ + "communicationsCheckboxes", + "privacyText", + "type" + ], + "type": "object", + "properties": { + "communicationsCheckboxes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LegalConsentCheckbox" + } + }, + "communicationConsentText": { + "type": "string" + }, + "consentToProcessCheckboxLabel": { + "type": "string" + }, + "consentToProcessFooterText": { + "type": "string" + }, + "type": { + "type": "string", + "default": "explicit_consent_to_process", + "enum": [ + "explicit_consent_to_process" + ] + }, + "privacyText": { + "type": "string" + }, + "consentToProcessText": { + "type": "string" + } + } + }, + "DropdownField": { + "title": "dropdown", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "dropdown", + "enum": [ + "dropdown" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A field consisting of a drop down with multiple choices." + }, + "RadioField": { + "title": "radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "radio", + "enum": [ + "radio" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of radio options, out of which one can be selected at a time." + }, + "HubSpotFormDefinitionCreateRequest": { + "properties": {}, + "allOf": [ + { + "$ref": "#/components/schemas/FormDefinitionCreateRequestBase" + }, + { + "required": [ + "archived", + "configuration", + "createdAt", + "displayOptions", + "fieldGroups", + "formType", + "legalConsentOptions", + "name", + "updatedAt" + ], + "type": "object", + "properties": { + "formType": { + "type": "string", + "default": "hubspot", + "enum": [ + "hubspot" + ] + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "archived": { + "type": "boolean" + }, + "archivedAt": { + "type": "string", + "format": "date-time" + }, + "fieldGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldGroup" + } + }, + "configuration": { + "$ref": "#/components/schemas/HubSpotFormConfiguration" + }, + "displayOptions": { + "$ref": "#/components/schemas/FormDisplayOptions" + }, + "legalConsentOptions": { + "oneOf": [ + { + "$ref": "#/components/schemas/LegalConsentOptionsNone" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsLegitimateInterest" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsExplicitConsentToProcess" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsImplicitConsentToProcess" + } + ] + } + }, + "x-hubspot-sub-type-impl": true + } + ] + }, + "EmailField": { + "title": "email", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "email", + "enum": [ + "email" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/EmailFieldValidation" + } + }, + "description": "A form field used for collecting an email address." + }, + "LegalConsentOptionsNone": { + "title": "none", + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "default": "none", + "enum": [ + "none" + ] + } + } + }, + "PhoneFieldValidation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a phone number should be validated." + }, + "FormDefinitionCreateRequestBase": { + "properties": {}, + "oneOf": [ + { + "$ref": "#/components/schemas/HubSpotFormDefinitionCreateRequest" + } + ] + }, + "FieldGroup": { + "required": [ + "fields", + "groupType", + "richTextType" + ], + "type": "object", + "properties": { + "groupType": { + "type": "string", + "enum": [ + "default_group", + "progressive", + "queued" + ] + }, + "richTextType": { + "type": "string", + "description": "The type of rich text included. The default value is text.", + "enum": [ + "text", + "image" + ] + }, + "richText": { + "type": "string", + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "type": "array", + "description": "The form fields included in the group", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailField" + }, + { + "$ref": "#/components/schemas/PhoneField" + }, + { + "$ref": "#/components/schemas/MobilePhoneField" + }, + { + "$ref": "#/components/schemas/SingleLineTextField" + }, + { + "$ref": "#/components/schemas/MultiLineTextField" + }, + { + "$ref": "#/components/schemas/NumberField" + }, + { + "$ref": "#/components/schemas/SingleCheckboxField" + }, + { + "$ref": "#/components/schemas/MultipleCheckboxesField" + }, + { + "$ref": "#/components/schemas/DropdownField" + }, + { + "$ref": "#/components/schemas/RadioField" + }, + { + "$ref": "#/components/schemas/DatepickerField" + }, + { + "$ref": "#/components/schemas/FileField" + }, + { + "$ref": "#/components/schemas/PaymentLinkRadioField" + } + ] + } + } + }, + "description": "A collection of up to three form fields usually displayed in a row." + }, + "FileField": { + "title": "file", + "required": [ + "allowMultipleFiles", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "allowMultipleFiles": { + "type": "boolean", + "description": "Whether to allow the upload of multiple files." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "file", + "enum": [ + "file" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field used for uploading one or more files." + }, + "LegalConsentCheckbox": { + "required": [ + "label", + "required", + "subscriptionTypeId" + ], + "type": "object", + "properties": { + "subscriptionTypeId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "required": { + "type": "boolean", + "description": "Whether this checkbox is required when submitting the form." + } + } + }, + "NumberField": { + "title": "number", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "number", + "enum": [ + "number" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/NumberFieldValidation" + } + }, + "description": "A form field used for collecting a numeric value." + }, + "PaymentLinkRadioField": { + "title": "payment_link_radio", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string" + }, + "defaultValues": { + "type": "array", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string" + }, + "fieldType": { + "type": "string", + "default": "payment_link_radio", + "enum": [ + "payment_link_radio" + ] + }, + "required": { + "type": "boolean" + } + } + }, + "LegalConsentOptionsLegitimateInterest": { + "title": "legitimate_interest", + "required": [ + "lawfulBasis", + "privacyText", + "subscriptionTypeIds", + "type" + ], + "type": "object", + "properties": { + "subscriptionTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "lawfulBasis": { + "type": "string", + "enum": [ + "lead", + "client", + "other" + ] + }, + "type": { + "type": "string", + "default": "legitimate_interest", + "enum": [ + "legitimate_interest" + ] + }, + "privacyText": { + "type": "string" + } + } + }, + "MultipleCheckboxesField": { + "title": "multiple_checkboxes", + "required": [ + "defaultValues", + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "options", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "options": { + "type": "array", + "description": "The list of available choices for this field.", + "items": { + "$ref": "#/components/schemas/EnumeratedFieldOption" + } + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "defaultValues": { + "type": "array", + "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", + "items": { + "type": "string" + } + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "multiple_checkboxes", + "enum": [ + "multiple_checkboxes" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time." + }, + "NumberFieldValidation": { + "required": [ + "maxAllowedDigits", + "minAllowedDigits" + ], + "type": "object", + "properties": { + "minAllowedDigits": { + "type": "integer", + "format": "int32" + }, + "maxAllowedDigits": { + "type": "integer", + "format": "int32" + } + }, + "description": "Describes how a numeric value should be validated." + }, + "DependentFieldFilter": { + "required": [ + "operator", + "rangeEnd", + "rangeStart", + "value", + "values" + ], + "type": "object", + "properties": { + "rangeStart": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "eq", + "neq", + "contains", + "doesnt_contain", + "str_starts_with", + "str_ends_with", + "lt", + "lte", + "gt", + "gte", + "between", + "not_between", + "within_time_reverse", + "within_time", + "set_any", + "set_not_any", + "set_all", + "set_not_all", + "set_eq", + "set_neq", + "is_not_empty" + ] + }, + "rangeEnd": { + "type": "string" + } + }, + "description": "A condition based on customer input" + }, + "SingleCheckboxField": { + "title": "single_checkbox", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_checkbox", + "enum": [ + "single_checkbox" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single checkbox." + }, + "EnumeratedFieldOption": { + "required": [ + "displayOrder", + "label", + "value" + ], + "type": "object", + "properties": { + "displayOrder": { + "type": "integer", + "description": "The order the choices will be displayed in.", + "format": "int32" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string", + "description": "The visible label for this choice." + }, + "value": { + "type": "string", + "description": "The value which will be submitted if this choice is selected." + } + } + }, + "FormPostSubmitAction": { + "required": [ + "type", + "value" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The action to take after submit. The default action is displaying a thank you message.", + "enum": [ + "thank_you", + "redirect_url" + ] + }, + "value": { + "type": "string", + "description": "The thank you text or the page to redirect to." + } + }, + "description": "What should happen after the customer submits the form." + }, + "HubSpotFormDefinitionPatchRequest": { + "type": "object", + "properties": { + "fieldGroups": { + "type": "array", + "description": "The fields in the form, grouped in rows.", + "items": { + "$ref": "#/components/schemas/FieldGroup" + } + }, + "archived": { + "type": "boolean", + "description": "Whether this form is archived." + }, + "configuration": { + "$ref": "#/components/schemas/HubSpotFormConfiguration" + }, + "name": { + "type": "string", + "description": "The name of the form. Expected to be unique for a hub." + }, + "legalConsentOptions": { + "oneOf": [ + { + "$ref": "#/components/schemas/LegalConsentOptionsNone" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsLegitimateInterest" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsExplicitConsentToProcess" + }, + { + "$ref": "#/components/schemas/LegalConsentOptionsImplicitConsentToProcess" + } + ] + }, + "displayOptions": { + "$ref": "#/components/schemas/FormDisplayOptions" + } + } + }, + "EmailFieldValidation": { + "required": [ + "blockedEmailDomains", + "useDefaultBlockList" + ], + "type": "object", + "properties": { + "useDefaultBlockList": { + "type": "boolean", + "description": "Whether to block the free email providers." + }, + "blockedEmailDomains": { + "type": "array", + "description": "A list of email domains to block.", + "items": { + "type": "string" + } + } + }, + "description": "Describes how an email address should be validated." + }, + "LifecycleStage": { + "required": [ + "objectTypeId", + "value" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "The objectTypeId for both contact and company" + }, + "value": { + "type": "string", + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + } + }, + "PhoneField": { + "title": "phone", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required", + "useCountryCodeSelect", + "validation" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "useCountryCodeSelect": { + "type": "boolean", + "description": "Whether to display a country code drop down next to the phone field." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "phone", + "enum": [ + "phone" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + }, + "validation": { + "$ref": "#/components/schemas/PhoneFieldValidation" + } + }, + "description": "A form field used for collecting a phone number." + }, + "SingleLineTextField": { + "title": "single_line_text", + "required": [ + "dependentFields", + "fieldType", + "hidden", + "label", + "name", + "objectTypeId", + "required" + ], + "type": "object", + "properties": { + "objectTypeId": { + "type": "string", + "description": "A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1." + }, + "hidden": { + "type": "boolean", + "description": "Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in." + }, + "defaultValue": { + "type": "string", + "description": "The value filled in by default. This value will be submitted unless the customer modifies it." + }, + "name": { + "type": "string", + "description": "The identifier of the field. In combination with the object type ID, it must be unique." + }, + "description": { + "type": "string", + "description": "Additional text helping the customer to complete the field." + }, + "dependentFields": { + "type": "array", + "description": "A list of other fields to make visible based on the value filled in for this field.", + "items": { + "$ref": "#/components/schemas/DependentField" + } + }, + "label": { + "type": "string", + "description": "The main label for the form field." + }, + "placeholder": { + "type": "string", + "description": "The prompt text showing when the field isn't filled in." + }, + "fieldType": { + "type": "string", + "description": "Determines how the field will be displayed and validated.", + "default": "single_line_text", + "enum": [ + "single_line_text" + ] + }, + "required": { + "type": "boolean", + "description": "Whether a value for this field is required when submitting the form." + } + }, + "description": "A form field consisting of a single-line text box." + }, + "PublicEmailToDetails": { + "type": "object", + "properties": { + "contactIlsLists": { + "$ref": "#/components/schemas/PublicEmailRecipients" + }, + "limitSendFrequency": { + "type": "boolean" + }, + "suppressGraymail": { + "type": "boolean" + }, + "contactIds": { + "$ref": "#/components/schemas/PublicEmailRecipients" + }, + "contactLists": { + "$ref": "#/components/schemas/PublicEmailRecipients" + } + }, + "description": "Data structure representing the to fields of the email." + }, + "PublicDividerStyleSettings": { + "type": "object", + "properties": { + "height": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "object", + "properties": {} + }, + "lineType": { + "type": "string" + } + } + }, + "CollectionResponseWithTotalVersionPublicEmail": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of content emails.", + "format": "int32" + }, + "paging": { + "$ref": "#/components/schemas/Paging" + }, + "results": { + "type": "array", + "description": "Collection of emails.", + "items": { + "$ref": "#/components/schemas/VersionPublicEmail" + } + } + }, + "description": "Response object for collections of marketing emails with pagination information." + }, + "PublicEmail": { + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "publishedByEmail": { + "type": "string" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "isTransactional": { + "type": "boolean", + "description": "Returns whether the email is a transactional email or not. This is read only." + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "type": { + "type": "string", + "description": "The email type, this is derived from other properties on the email such as subcategory.", + "enum": [ + "AB_EMAIL", + "BATCH_EMAIL", + "LOCALTIME_EMAIL", + "AUTOMATED_AB_EMAIL", + "BLOG_EMAIL", + "BLOG_EMAIL_CHILD", + "RSS_EMAIL", + "RSS_EMAIL_CHILD", + "RESUBSCRIBE_EMAIL", + "OPTIN_EMAIL", + "OPTIN_FOLLOWUP_EMAIL", + "AUTOMATED_EMAIL", + "FEEDBACK_CES_EMAIL", + "FEEDBACK_CUSTOM_EMAIL", + "FEEDBACK_CUSTOM_SURVEY_EMAIL", + "FEEDBACK_NPS_EMAIL", + "FOLLOWUP_EMAIL", + "LEADFLOW_EMAIL", + "SINGLE_SEND_API", + "MARKETING_SINGLE_SEND_API", + "SMTP_TOKEN", + "TICKET_EMAIL", + "MEMBERSHIP_REGISTRATION_EMAIL", + "MEMBERSHIP_PASSWORD_SAVED_EMAIL", + "MEMBERSHIP_PASSWORD_RESET_EMAIL", + "MEMBERSHIP_EMAIL_VERIFICATION_EMAIL", + "MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL", + "MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL", + "MEMBERSHIP_OTP_LOGIN_EMAIL", + "MEMBERSHIP_FOLLOW_UP_EMAIL", + "MEMBERSHIP_VERIFICATION_EMAIL" + ] + }, + "campaignUtm": { + "type": "string" + }, + "content": { + "$ref": "#/components/schemas/PublicEmailContent" + }, + "businessUnitId": { + "type": "string" + }, + "webversion": { + "$ref": "#/components/schemas/PublicWebversionDetails" + }, + "workflowNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "publishedByName": { + "type": "string" + }, + "createdAt": { + "type": "string", + "description": "The date and time of the email's creation, in ISO8601 representation.", + "format": "date-time" + }, + "unpublishedAt": { + "type": "string", + "format": "date-time" + }, + "stats": { + "$ref": "#/components/schemas/EmailStatisticsData" + }, + "jitterSendTime": { + "type": "boolean" + }, + "from": { + "$ref": "#/components/schemas/PublicEmailFromDetails" + }, + "allEmailCampaignIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "isAb": { + "type": "boolean" + }, + "id": { + "type": "string", + "description": "The email ID." + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "primaryEmailCampaignId": { + "type": "string" + }, + "createdById": { + "type": "string", + "description": "The id of the user who created the email." + }, + "updatedAt": { + "type": "string", + "description": "The date and time of the last update to the email, in ISO8601 representation.", + "format": "date-time" + }, + "clonedFrom": { + "type": "string" + }, + "rssData": { + "$ref": "#/components/schemas/PublicRssEmailDetails" + }, + "publishedAt": { + "type": "string", + "description": "The date and time the email was published at, in ISO8601 representation.", + "format": "date-time" + }, + "publishedById": { + "type": "string" + }, + "isPublished": { + "type": "boolean", + "description": "Returns the published status of the email. This is read only." + }, + "testing": { + "$ref": "#/components/schemas/PublicEmailTestingDetails" + }, + "updatedById": { + "type": "string", + "description": "The id of the user who last updated the email." + }, + "folderId": { + "type": "integer", + "format": "int64" + }, + "emailCampaignGroupId": { + "type": "string" + }, + "subscriptionDetails": { + "$ref": "#/components/schemas/PublicEmailSubscriptionDetails" + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "previewKey": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "to": { + "$ref": "#/components/schemas/PublicEmailToDetails" + }, + "subcategory": { + "type": "string", + "description": "The email subcategory." + }, + "campaignName": { + "type": "string" + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "A marketing email", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "templatePath": "@hubspot/email/dnd/plain_text.html", + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "id": "38175169118", + "isPublished": false, + "isTransactional": false, + "language": "en", + "name": "My subject", + "publishDate": "2020-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "type": "BATCH_EMAIL", + "updatedAt": "2020-11-30T18:44:20.384Z", + "updatedById": 3739732, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + }, + "AbTestCreateRequestVNext": { + "required": [ + "contentId", + "variationName" + ], + "type": "object", + "properties": { + "variationName": { + "type": "string" + }, + "contentId": { + "type": "string", + "description": "ID of the object to test." + } + }, + "description": "Request body object for creating A/B tests.", + "example": { + "contentId": "7", + "variantName": "AB Test - Number 7" + } + }, + "EmailStatisticInterval": { + "required": [ + "aggregations", + "interval" + ], + "type": "object", + "properties": { + "interval": { + "$ref": "#/components/schemas/Interval" + }, + "aggregations": { + "$ref": "#/components/schemas/EmailStatisticsData" + } + } + }, + "CollectionResponseWithTotalPublicEmailForwardPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of content emails.", + "format": "int32" + }, + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "description": "Collection of emails.", + "items": { + "$ref": "#/components/schemas/PublicEmail" + } + } + }, + "description": "Response object for collections of marketing emails with pagination information." + }, + "PublicButtonStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "object", + "properties": {} + }, + "cornerRadius": { + "type": "integer", + "format": "int32" + }, + "fontStyle": { + "$ref": "#/components/schemas/PublicFontStyle" + } + } + }, + "EmailUpdateRequest": { + "type": "object", + "properties": { + "rssData": { + "$ref": "#/components/schemas/PublicRssEmailDetails" + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "$ref": "#/components/schemas/PublicEmailTestingDetails" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "$ref": "#/components/schemas/PublicEmailContent" + }, + "webversion": { + "$ref": "#/components/schemas/PublicWebversionDetails" + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "$ref": "#/components/schemas/PublicEmailSubscriptionDetails" + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "$ref": "#/components/schemas/PublicEmailFromDetails" + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "$ref": "#/components/schemas/PublicEmailToDetails" + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "Properties of a marketing email you can update via the API.", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "name": "My subject", + "publishDate": "2023-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + }, + "PublicEmailSubscriptionDetails": { + "type": "object", + "properties": { + "officeLocationId": { + "type": "string", + "description": "ID of the selected office location." + }, + "subscriptionName": { + "type": "string" + }, + "preferencesGroupId": { + "type": "string" + }, + "subscriptionId": { + "type": "string", + "description": "ID of the subscription." + } + }, + "description": "Data structure representing the subscription fields of the email." + }, + "EmailCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "feedbackSurveyId": { + "type": "string", + "description": "The ID of the feedback survey linked to the email." + }, + "rssData": { + "$ref": "#/components/schemas/PublicRssEmailDetails" + }, + "subject": { + "type": "string", + "description": "The subject of the email." + }, + "testing": { + "$ref": "#/components/schemas/PublicEmailTestingDetails" + }, + "publishDate": { + "type": "string", + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", + "format": "date-time" + }, + "language": { + "type": "string", + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ] + }, + "businessUnitId": { + "type": "integer", + "format": "int64" + }, + "content": { + "$ref": "#/components/schemas/PublicEmailContent" + }, + "webversion": { + "$ref": "#/components/schemas/PublicWebversionDetails" + }, + "archived": { + "type": "boolean", + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "$ref": "#/components/schemas/PublicEmailSubscriptionDetails" + }, + "activeDomain": { + "type": "string", + "description": "The active domain of the email." + }, + "name": { + "type": "string", + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "type": "string", + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "$ref": "#/components/schemas/PublicEmailFromDetails" + }, + "jitterSendTime": { + "type": "boolean" + }, + "state": { + "type": "string", + "description": "The email state.", + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ] + }, + "to": { + "$ref": "#/components/schemas/PublicEmailToDetails" + }, + "subcategory": { + "type": "string", + "description": "The email subcategory.", + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ] + }, + "sendOnPublish": { + "type": "boolean", + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "description": "Properties of a marketing email you can set when creating a marketing email.", + "example": { + "activeDomain": "test.hs-sites.com", + "archived": false, + "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", + "content": { + "flexAreas": { + "main": { + "boxed": false, + "isSingleColumnFullWidth": false, + "sections": [ + { + "columns": [ + { + "id": "column_1606761806181_0", + "widgets": [ + "module_160676180617911" + ], + "width": 12 + } + ], + "id": "section_1606761806181", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT" + } + }, + { + "columns": [ + { + "id": "column-0-1", + "widgets": [ + "module-0-1-1" + ], + "width": 12 + } + ], + "id": "section-0", + "style": { + "backgroundType": "CONTENT", + "paddingBottom": "40px", + "paddingTop": "40px" + } + }, + { + "columns": [ + { + "id": "column-1-1", + "widgets": [ + "module-1-1-1" + ], + "width": 12 + } + ], + "id": "section-1", + "style": { + "backgroundColor": "", + "backgroundType": "CONTENT", + "paddingBottom": "0px", + "paddingTop": "0px" + } + } + ] + } + }, + "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", + "styleSettings": {}, + "widgets": { + "module-0-1-1": { + "body": { + "css_class": "dnd-module", + "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", + "i18nKey": "richText.plainText", + "path": "@hubspot/rich_text", + "schema_version": 2 + }, + "child_css": {}, + "css": {}, + "id": "module-0-1-1", + "module_id": 1155639, + "name": "module-0-1-1", + "order": 2, + "styles": {}, + "type": "module" + }, + "module-1-1-1": { + "body": { + "align": "center", + "css_class": "dnd-module", + "font": { + "color": "#23496d", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + } + }, + "link_font": { + "color": "#00a4bd", + "font": "Helvetica,Arial,sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "path": "@hubspot/email_footer", + "schema_version": 2, + "unsubscribe_link_type": "both" + }, + "child_css": {}, + "css": {}, + "id": "module-1-1-1", + "module_id": 2869621, + "name": "module-1-1-1", + "order": 3, + "styles": {}, + "type": "module" + }, + "module_160676180617911": { + "body": { + "font": { + "color": "#00a4bd", + "font": "Arial, sans-serif", + "size": { + "units": "px", + "value": 12 + }, + "styles": { + "bold": false, + "italic": false, + "underline": true + } + }, + "hs_enable_module_padding": false, + "hs_wrapper_css": {} + }, + "child_css": {}, + "css": {}, + "id": "module_160676180617911", + "module_id": 2794854, + "name": "module_160676180617911", + "styles": {}, + "type": "module" + }, + "preview_text": { + "body": { + "value": "" + }, + "child_css": {}, + "css": {}, + "id": "preview_text", + "label": "Preview Text This will be used as the preview text that displays in some email clients", + "name": "preview_text", + "order": 0, + "styles": {}, + "type": "text" + } + } + }, + "createdAt": "2020-11-30T18:43:17.136Z", + "createdById": 3739732, + "from": { + "fromName": "Bruce Wayne", + "replyTo": "test@hubspot.com" + }, + "name": "My subject", + "publishDate": "2023-11-30T18:44:20.387Z", + "sendOnPublish": true, + "state": "DRAFT", + "subcategory": "batch", + "subject": "My subject", + "subscriptionDetails": { + "officeLocationId": "5449392956" + }, + "to": { + "contactIds": {}, + "contactIlsLists": { + "exclude": [ + 1 + ], + "include": [ + 5 + ] + }, + "suppressGraymail": true + }, + "webversion": { + "expiresAt": "2020-11-30T18:44:20.387Z", + "metaDescription": "", + "redirectToPageId": 0, + "redirectToUrl": "http://www.example.org" + } + } + }, + "VersionPublicEmail": { + "required": [ + "id", + "object", + "updatedAt", + "user" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of this marketing email version." + }, + "user": { + "$ref": "#/components/schemas/VersionUser" + }, + "object": { + "$ref": "#/components/schemas/PublicEmail" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + }, + "description": "Model definition for a marketing email version. Contains metadata describing the version of the marketing email. It can be used to view edit history of a marketing email." + }, + "VersionUser": { + "required": [ + "email", + "fullName", + "id" + ], + "type": "object", + "properties": { + "fullName": { + "type": "string", + "description": "First and last name of the user." + }, + "id": { + "type": "string", + "description": "ID of the user." + }, + "email": { + "type": "string", + "description": "Email address of the user." + } + }, + "description": "Model definition for a version user. Contains addition information about the user who created a version." + }, + "CollectionResponseWithTotalEmailStatisticIntervalNoPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of objects.", + "format": "int32" + }, + "results": { + "type": "array", + "description": "Collection of objects.", + "items": { + "$ref": "#/components/schemas/EmailStatisticInterval" + } + } + }, + "description": "Response object for collections of EmailStatisticIntervals." + }, + "PublicEmailRecipients": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "Included IDs.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Excluded IDs.", + "items": { + "type": "string" + } + } + }, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "PublicFontStyle": { + "type": "object", + "properties": { + "font": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "color": { + "type": "string" + }, + "underline": { + "type": "boolean" + }, + "bold": { + "type": "boolean" + }, + "italic": { + "type": "boolean" + } + } + }, + "PublicEmailStyleSettings": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "backgroundImage": { + "type": "string" + }, + "backgroundImageType": { + "type": "string" + }, + "bodyColor": { + "type": "string" + }, + "bodyBorderColor": { + "type": "string" + }, + "bodyBorderWidth": { + "type": "number" + }, + "bodyBorderColorChoice": { + "type": "string" + }, + "primaryFont": { + "type": "string" + }, + "primaryFontColor": { + "type": "string" + }, + "primaryAccentColor": { + "type": "string" + }, + "primaryFontSize": { + "type": "number" + }, + "primaryFontLineHeight": { + "type": "string" + }, + "secondaryFont": { + "type": "string" + }, + "secondaryFontColor": { + "type": "string" + }, + "secondaryAccentColor": { + "type": "string" + }, + "secondaryFontSize": { + "type": "number" + }, + "secondaryFontLineHeight": { + "type": "string" + }, + "headingOneFont": { + "$ref": "#/components/schemas/PublicFontStyle" + }, + "headingTwoFont": { + "$ref": "#/components/schemas/PublicFontStyle" + }, + "linksFont": { + "$ref": "#/components/schemas/PublicFontStyle" + }, + "colorPickerFavorite1": { + "type": "string" + }, + "colorPickerFavorite2": { + "type": "string" + }, + "colorPickerFavorite3": { + "type": "string" + }, + "colorPickerFavorite4": { + "type": "string" + }, + "colorPickerFavorite5": { + "type": "string" + }, + "colorPickerFavorite6": { + "type": "string" + }, + "emailBodyPadding": { + "type": "string" + }, + "emailBodyWidth": { + "type": "string" + }, + "buttonStyleSettings": { + "$ref": "#/components/schemas/PublicButtonStyleSettings" + }, + "dividerStyleSettings": { + "$ref": "#/components/schemas/PublicDividerStyleSettings" + } + } + }, + "EmailCloneRequestVNext": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "cloneName": { + "type": "string" + }, + "language": { + "type": "string" + } + } + }, + "PublicEmailTestingDetails": { + "type": "object", + "properties": { + "isAbVariation": { + "type": "boolean" + }, + "abSamplingDefault": { + "type": "string", + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abSampleSizeDefault": { + "type": "string", + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abStatus": { + "type": "string", + "description": "Status of the AB test.", + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ] + }, + "abTestPercentage": { + "type": "integer", + "description": "The size of your test group.", + "format": "int32" + }, + "hoursToWait": { + "type": "integer", + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", + "format": "int32" + }, + "testId": { + "type": "string", + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "type": "string", + "description": "Metric to determine the version that will be sent to the remaining contacts.", + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ] + } + }, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "PublicWebversionDetails": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "redirectToPageId": { + "type": "string" + }, + "isPageRedirected": { + "type": "boolean" + }, + "redirectToUrl": { + "type": "string" + }, + "title": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "pageExpiryEnabled": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "slug": { + "type": "string" + }, + "url": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + } + }, + "EmailStatisticsData": { + "required": [ + "counters", + "deviceBreakdown", + "qualifierStats", + "ratios" + ], + "type": "object", + "properties": { + "deviceBreakdown": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Statistics by device." + }, + "qualifierStats": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + }, + "description": "Number of emails that were dropped and bounced." + }, + "counters": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Counters like number of `sent`, `open` or `delivered`." + }, + "ratios": { + "type": "object", + "additionalProperties": { + "type": "number" + }, + "description": "Ratios like `openratio` or `clickratio`" + } + } + }, + "PublicRssEmailDetails": { + "type": "object", + "properties": { + "blogImageMaxWidth": { + "type": "integer", + "format": "int32" + }, + "blogEmailType": { + "type": "string" + }, + "hubspotBlogId": { + "type": "string" + }, + "rssEntryTemplate": { + "type": "string" + }, + "timing": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "maxEntries": { + "type": "integer", + "format": "int32" + }, + "useHeadlineAsSubject": { + "type": "boolean" + }, + "blogLayout": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "description": "RSS related data if it is a blog or rss email." + }, + "AggregateEmailStatistics": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "description": "List of email IDs that were sent during the time span.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "campaignAggregations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/EmailStatisticsData" + }, + "description": "The aggregated statistics per campaign." + }, + "aggregate": { + "$ref": "#/components/schemas/EmailStatisticsData" + } + }, + "description": "Aggregated statistics for the given interval, plus the IDs of emails that were sent during that interval." + }, + "PublicEmailFromDetails": { + "type": "object", + "properties": { + "customReplyTo": { + "type": "string", + "description": "The reply to recipients will see." + }, + "fromName": { + "type": "string", + "description": "The name recipients will see." + }, + "replyTo": { + "type": "string", + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "description": "Data structure representing the from fields on the email." + }, + "SmartEmailField": { + "type": "object", + "properties": {}, + "description": "An email field whose value is controlled by one or more smart rules." + }, + "Interval": { + "required": [ + "end", + "start" + ], + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "date-time" + }, + "end": { + "type": "string", + "format": "date-time" + } + } + }, + "PublicEmailContent": { + "type": "object", + "properties": { + "smartFields": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/SmartEmailField" + } + }, + "themeSettingsValues": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "flexAreas": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "widgets": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "plainTextVersion": { + "type": "string" + }, + "templatePath": { + "type": "string" + }, + "widgetContainers": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + } + }, + "styleSettings": { + "$ref": "#/components/schemas/PublicEmailStyleSettings" + } + }, + "description": "Data structure representing the content of the email." + }, + "MarketingEventCompleteRequestParams": { + "required": [ + "endDateTime", + "startDateTime" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + } + }, + "ParticipationProperties": { + "required": [ + "attendanceState", + "occurredAt" + ], + "type": "object", + "properties": { + "occurredAt": { + "type": "integer", + "format": "int64" + }, + "attendancePercentage": { + "type": "string" + }, + "attendanceState": { + "type": "string", + "enum": [ + "REGISTERED", + "ATTENDED", + "CANCELLED", + "EMPTY", + "NO_SHOW" + ] + }, + "attendanceDurationSeconds": { + "type": "integer", + "format": "int32" + } + } + }, + "SubscriberEmailResponse": { + "required": [ + "email", + "vid" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "email": { + "type": "string" + } + } + }, + "MarketingEventPublicReadResponse": { + "required": [ + "attendees", + "cancellations", + "createdAt", + "eventName", + "eventOrganizer", + "externalEventId", + "id", + "noShows", + "registrants", + "updatedAt" + ], + "type": "object", + "properties": { + "registrants": { + "type": "integer", + "description": "The number of HubSpot contacts that registered for this marketing event.", + "format": "int32" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "attendees": { + "type": "integer", + "description": "The number of HubSpot contacts that attended this marketing event.", + "format": "int32" + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "noShows": { + "type": "integer", + "description": "The number of HubSpot contacts that registered for this marketing event, but did not attend. This field only had a value when the event is over.", + "format": "int32" + }, + "cancellations": { + "type": "integer", + "description": "The number of HubSpot contacts that registered for this marketing event, but later cancelled their registration.", + "format": "int32" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "MarketingEventAssociation": { + "required": [ + "marketingEventId", + "name" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "marketingEventId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "MarketingEventEmailSubscriber": { + "required": [ + "email", + "interactionDateTime" + ], + "type": "object", + "properties": { + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "email": { + "type": "string", + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + }, + "PublicList": { + "required": [ + "listId", + "listVersion", + "name", + "objectTypeId", + "processingStatus", + "processingType" + ], + "type": "object", + "properties": { + "processingType": { + "type": "string" + }, + "objectTypeId": { + "type": "string" + }, + "updatedById": { + "type": "string" + }, + "filtersUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "listId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "processingStatus": { + "type": "string" + }, + "deletedAt": { + "type": "string", + "format": "date-time" + }, + "listVersion": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "createdById": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "MarketingEventExternalUniqueIdentifier": { + "required": [ + "appId", + "externalAccountId", + "externalEventId" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "appId": { + "type": "integer", + "description": "The id of the application that created the marketing event in HubSpot.", + "format": "int32" + } + } + }, + "CrmPropertyWrapper": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "SearchPublicResponseWrapper": { + "required": [ + "appId", + "externalAccountId", + "externalEventId", + "objectId" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "appId": { + "type": "integer", + "format": "int32" + }, + "objectId": { + "type": "string" + } + } + }, + "SubscriberVidResponse": { + "required": [ + "vid" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + } + } + }, + "MarketingEventPublicUpdateRequestV2": { + "required": [ + "customProperties" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + } + }, + "MarketingEventIdentifiersResponse": { + "required": [ + "externalEventId", + "marketingEventName", + "objectId" + ], + "type": "object", + "properties": { + "externalAccountId": { + "type": "string" + }, + "externalEventId": { + "type": "string" + }, + "appInfo": { + "$ref": "#/components/schemas/AppInfo" + }, + "objectId": { + "type": "string" + }, + "marketingEventName": { + "type": "string" + } + } + }, + "PropertyValue": { + "required": [ + "name", + "sourceUpstreamDeployable", + "value" + ], + "type": "object", + "properties": { + "sourceId": { + "type": "string", + "description": "The ID of the property source indicating where it was created.", + "example": "" + }, + "selectedByUser": { + "type": "boolean", + "description": "Whether the value was selected by a user.", + "example": false + }, + "sourceLabel": { + "type": "string", + "description": "A human-readable label.", + "example": "" + }, + "sourceUpstreamDeployable": { + "type": "string" + }, + "source": { + "type": "string", + "description": "The origin of the property value, such as \"IMPORT\" or \"API\".", + "example": "", + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ] + }, + "updatedByUserId": { + "type": "integer", + "description": "The ID of the user who updated the property.", + "format": "int32" + }, + "persistenceTimestamp": { + "type": "integer", + "format": "int64" + }, + "sourceMetadata": { + "type": "string", + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", + "example": "" + }, + "dataSensitivity": { + "type": "string", + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\".", + "example": "", + "enum": [ + "none", + "standard", + "high" + ] + }, + "sourceVid": { + "type": "array", + "description": "The unique identifier associated with the source.", + "example": "", + "items": { + "type": "integer", + "format": "int64" + } + }, + "unit": { + "type": "string", + "description": "The unit of measurement or context for the value.", + "example": "" + }, + "requestId": { + "type": "string", + "description": "A unique ID associated with this request.", + "example": "" + }, + "isEncrypted": { + "type": "boolean", + "description": "Whether the property value is encrypted.", + "example": false + }, + "name": { + "type": "string", + "description": "Name of custom property", + "example": "" + }, + "useTimestampAsPersistenceTimestamp": { + "type": "boolean" + }, + "value": { + "type": "string", + "description": "Custom property value", + "example": "" + }, + "selectedByUserTimestamp": { + "type": "integer", + "description": "The timestamp when the value was selected by a user, if applicable.", + "format": "int64" + }, + "timestamp": { + "type": "integer", + "description": "When the value was set, as a 64-bit integer.", + "format": "int64" + }, + "isLargeValue": { + "type": "boolean" + } + }, + "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes." + }, + "BatchInputMarketingEventExternalUniqueIdentifier": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventExternalUniqueIdentifier" + } + } + } + }, + "MarketingEventUpdateRequestParams": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + }, + "AppInfo": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + }, + "CollectionResponseWithTotalPublicListNoPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicList" + } + } + } + }, + "ContactAssociation": { + "required": [ + "contactId", + "email" + ], + "type": "object", + "properties": { + "firstname": { + "type": "string" + }, + "contactId": { + "type": "string" + }, + "email": { + "type": "string" + }, + "lastname": { + "type": "string" + } + } + }, + "ParticipationBreakdown": { + "required": [ + "associations", + "createdAt", + "id", + "properties" + ], + "type": "object", + "properties": { + "associations": { + "$ref": "#/components/schemas/ParticipationAssociations" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "properties": { + "$ref": "#/components/schemas/ParticipationProperties" + } + } + }, + "MarketingEventPublicDefaultResponse": { + "required": [ + "createdAt", + "eventName", + "eventOrganizer", + "id", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "id": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "BatchResponseSubscriberVidResponse": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriberVidResponse" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "MarketingEventDefaultResponse": { + "required": [ + "eventName", + "eventOrganizer" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled." + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "The URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "The type of the marketing event." + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + } + }, + "ParticipationAssociations": { + "required": [ + "contact", + "marketingEvent" + ], + "type": "object", + "properties": { + "marketingEvent": { + "$ref": "#/components/schemas/MarketingEventAssociation" + }, + "contact": { + "$ref": "#/components/schemas/ContactAssociation" + } + } + }, + "BatchInputMarketingEventSubscriber": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of HubSpot contacts to subscribe to the marketing event", + "items": { + "$ref": "#/components/schemas/MarketingEventSubscriber" + } + } + } + }, + "MarketingEventCreateRequestParams": { + "required": [ + "eventName", + "eventOrganizer", + "externalAccountId", + "externalEventId" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "description": "The start date and time of the marketing event.", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "externalAccountId": { + "type": "string", + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "type": "boolean", + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "type": "string", + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "type": "string", + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "type": "string", + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "type": "string", + "description": "The description of the marketing event." + }, + "eventName": { + "type": "string", + "description": "The name of the marketing event." + }, + "eventType": { + "type": "string", + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "description": "The end date and time of the marketing event.", + "format": "date-time" + } + } + }, + "BatchInputMarketingEventPublicUpdateRequestFullV2": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventPublicUpdateRequestFullV2" + } + } + } + }, + "CollectionResponseWithTotalMarketingEventIdentifiersResponseNoPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventIdentifiersResponse" + } + } + } + }, + "EventDetailSettings": { + "required": [ + "appId", + "eventDetailsUrl" + ], + "type": "object", + "properties": { + "appId": { + "type": "integer", + "description": "The id of the application the settings are for", + "format": "int32" + }, + "eventDetailsUrl": { + "type": "string", + "description": "The url that will be used to fetch marketing event details by id" + } + } + }, + "MarketingEventSubscriber": { + "required": [ + "interactionDateTime" + ], + "type": "object", + "properties": { + "vid": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "interactionDateTime": { + "type": "integer", + "description": "Timestamp in milliseconds at which the contact subscribed to the event.", + "format": "int64" + } + } + }, + "EventDetailSettingsUrl": { + "required": [ + "eventDetailsUrl" + ], + "type": "object", + "properties": { + "eventDetailsUrl": { + "type": "string", + "description": "The url that will be used to fetch marketing event details by id. Must contain a `%s` character sequence that will be substituted with the event id. For example: `https://my.event.app/events/%s`" + } + } + }, + "BatchInputMarketingEventEmailSubscriber": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "description": "List of marketing event details to create or update", + "items": { + "$ref": "#/components/schemas/MarketingEventEmailSubscriber" + } + } + } + }, + "CollectionResponseMarketingEventPublicReadResponseV2ForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventPublicReadResponseV2" + } + } + } + }, + "MarketingEventPublicDefaultResponseV2": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "appInfo": { + "$ref": "#/components/schemas/AppInfo" + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrmPropertyWrapper" + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "MarketingEventPublicUpdateRequestFullV2": { + "required": [ + "customProperties", + "objectId" + ], + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyValue" + } + }, + "eventCancelled": { + "type": "boolean" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "eventType": { + "type": "string" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "objectId": { + "type": "string" + } + } + }, + "MarketingEventPublicReadResponseV2": { + "required": [ + "createdAt", + "customProperties", + "eventName", + "objectId", + "updatedAt" + ], + "type": "object", + "properties": { + "registrants": { + "type": "integer", + "format": "int32" + }, + "eventOrganizer": { + "type": "string" + }, + "eventUrl": { + "type": "string" + }, + "attendees": { + "type": "integer", + "format": "int32" + }, + "appInfo": { + "$ref": "#/components/schemas/AppInfo" + }, + "eventType": { + "type": "string" + }, + "eventCompleted": { + "type": "boolean" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "noShows": { + "type": "integer", + "format": "int32" + }, + "cancellations": { + "type": "integer", + "format": "int32" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "customProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrmPropertyWrapper" + } + }, + "eventCancelled": { + "type": "boolean" + }, + "externalEventId": { + "type": "string" + }, + "eventStatus": { + "type": "string" + }, + "eventDescription": { + "type": "string" + }, + "eventName": { + "type": "string" + }, + "objectId": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "BatchInputMarketingEventCreateRequestParams": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventCreateRequestParams" + } + } + } + }, + "BatchResponseMarketingEventPublicDefaultResponseV2WithErrors": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventPublicDefaultResponseV2" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "BatchInputMarketingEventPublicObjectIdDeleteRequest": { + "required": [ + "inputs" + ], + "type": "object", + "properties": { + "inputs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventPublicObjectIdDeleteRequest" + } + } + } + }, + "CollectionResponseSearchPublicResponseWrapperNoPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchPublicResponseWrapper" + } + } + } + }, + "AttendanceCounters": { + "required": [ + "attended", + "cancelled", + "noShows", + "registered" + ], + "type": "object", + "properties": { + "attended": { + "type": "integer", + "format": "int32" + }, + "registered": { + "type": "integer", + "format": "int32" + }, + "cancelled": { + "type": "integer", + "format": "int32" + }, + "noShows": { + "type": "integer", + "format": "int32" + } + } + }, + "BatchResponseSubscriberEmailResponse": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriberEmailResponse" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "MarketingEventPublicObjectIdDeleteRequest": { + "required": [ + "objectId" + ], + "type": "object", + "properties": { + "objectId": { + "type": "string" + } + } + }, + "CollectionResponseWithTotalParticipationBreakdownForwardPaging": { + "required": [ + "results", + "total" + ], + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ParticipationBreakdown" + } + } + } + }, + "BatchResponseMarketingEventPublicDefaultResponseV2": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventPublicDefaultResponseV2" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "BatchResponseMarketingEventPublicDefaultResponse": { + "required": [ + "completedAt", + "results", + "startedAt", + "status" + ], + "type": "object", + "properties": { + "completedAt": { + "type": "string", + "format": "date-time" + }, + "numErrors": { + "type": "integer", + "format": "int32" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketingEventPublicDefaultResponse" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StandardError" + } + }, + "status": { + "type": "string", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + } + }, + "EmailSendStatusView": { + "required": [ + "status", + "statusId" + ], + "type": "object", + "properties": { + "eventId": { + "$ref": "#/components/schemas/EventIdView" + }, + "completedAt": { + "type": "string", + "description": "Time when the send was completed.", + "format": "date-time" + }, + "statusId": { + "type": "string", + "description": "Identifier used to query the status of the send." + }, + "sendResult": { + "type": "string", + "description": "Result of the send.", + "enum": [ + "SENT", + "IDEMPOTENT_IGNORE", + "QUEUED", + "IDEMPOTENT_FAIL", + "THROTTLED", + "EMAIL_DISABLED", + "PORTAL_SUSPENDED", + "INVALID_TO_ADDRESS", + "BLOCKED_DOMAIN", + "PREVIOUSLY_BOUNCED", + "EMAIL_UNCONFIRMED", + "PREVIOUS_SPAM", + "PREVIOUSLY_UNSUBSCRIBED_MESSAGE", + "PREVIOUSLY_UNSUBSCRIBED_PORTAL", + "INVALID_FROM_ADDRESS", + "CAMPAIGN_CANCELLED", + "VALIDATION_FAILED", + "MTA_IGNORE", + "BLOCKED_ADDRESS", + "PORTAL_OVER_LIMIT", + "PORTAL_EXPIRED", + "PORTAL_MISSING_MARKETING_SCOPE", + "MISSING_TEMPLATE_PROPERTIES", + "MISSING_REQUIRED_PARAMETER", + "PORTAL_AUTHENTICATION_FAILURE", + "MISSING_CONTENT", + "CORRUPT_INPUT", + "TEMPLATE_RENDER_EXCEPTION", + "GRAYMAIL_SUPPRESSED", + "UNCONFIGURED_SENDING_DOMAIN", + "UNDELIVERABLE", + "CANCELLED_ABUSE", + "QUARANTINED_ADDRESS", + "ADDRESS_ONLY_ACCEPTED_ON_PROD", + "PORTAL_NOT_AUTHORIZED_FOR_APPLICATION", + "ADDRESS_LIST_BOMBED", + "ADDRESS_OPTED_OUT", + "RECIPIENT_FATIGUE_SUPPRESSED", + "TOO_MANY_RECIPIENTS", + "PREVIOUSLY_UNSUBSCRIBED_BRAND", + "NON_MARKETABLE_CONTACT", + "PREVIOUSLY_UNSUBSCRIBED_BUSINESS_UNIT", + "GDPR_DOI_ENABLED", + "HUBL_LIMIT_EXCEEDED", + "LOW_CONTACT_QUALITY_SCORE" + ] + }, + "requestedAt": { + "type": "string", + "description": "Time when the send was requested.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "Time when the send began processing.", + "format": "date-time" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string", + "description": "Status of the send request.", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Describes the status of an email send request." + }, + "PublicSingleSendRequestEgg": { + "required": [ + "emailId", + "message" + ], + "type": "object", + "properties": { + "customProperties": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + }, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "type": "integer", + "description": "The content ID for the email, which can be found in email tool UI.", + "format": "int64" + }, + "message": { + "$ref": "#/components/schemas/PublicSingleSendEmail" + }, + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "description": "A request to send a single email asynchronously." + }, + "EventIdView": { + "required": [ + "created", + "id" + ], + "type": "object", + "properties": { + "created": { + "type": "string", + "description": "Time of event creation.", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Identifier of event.", + "format": "uuid" + } + }, + "description": "The ID of a send event." + }, + "PublicSingleSendEmail": { + "required": [ + "to" + ], + "type": "object", + "properties": { + "cc": { + "type": "array", + "description": "List of email addresses to send as Cc.", + "items": { + "type": "string" + } + }, + "sendId": { + "type": "string", + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "type": "array", + "description": "List of email addresses to send as Bcc.", + "items": { + "type": "string" + } + }, + "replyTo": { + "type": "array", + "description": "List of Reply-To header values for the email.", + "items": { + "type": "string" + } + }, + "from": { + "type": "string", + "description": "The From header for the email." + }, + "to": { + "type": "string", + "description": "The recipient of the email." + } + }, + "description": "A JSON object containing anything you want to override." + }, + "CollectionResponseSmtpApiTokenViewForwardPaging": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "paging": { + "$ref": "#/components/schemas/ForwardPaging" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SmtpApiTokenView" + } + } + } + }, + "EmailSendStatusView2": { + "required": [ + "status", + "statusId" + ], + "type": "object", + "properties": { + "eventId": { + "$ref": "#/components/schemas/EventIdView" + }, + "completedAt": { + "type": "string", + "description": "Time when the send was completed.", + "format": "date-time" + }, + "statusId": { + "type": "string", + "description": "Identifier used to query the status of the send." + }, + "sendResult": { + "type": "string", + "description": "Result of the send.", + "enum": [ + "SENT", + "IDEMPOTENT_IGNORE", + "QUEUED", + "IDEMPOTENT_FAIL", + "THROTTLED", + "EMAIL_DISABLED", + "PORTAL_SUSPENDED", + "INVALID_TO_ADDRESS", + "BLOCKED_DOMAIN", + "PREVIOUSLY_BOUNCED", + "EMAIL_UNCONFIRMED", + "PREVIOUS_SPAM", + "PREVIOUSLY_UNSUBSCRIBED_MESSAGE", + "PREVIOUSLY_UNSUBSCRIBED_PORTAL", + "INVALID_FROM_ADDRESS", + "CAMPAIGN_CANCELLED", + "VALIDATION_FAILED", + "MTA_IGNORE", + "BLOCKED_ADDRESS", + "PORTAL_OVER_LIMIT", + "PORTAL_EXPIRED", + "PORTAL_MISSING_MARKETING_SCOPE", + "MISSING_TEMPLATE_PROPERTIES", + "MISSING_REQUIRED_PARAMETER", + "PORTAL_AUTHENTICATION_FAILURE", + "MISSING_CONTENT", + "CORRUPT_INPUT", + "TEMPLATE_RENDER_EXCEPTION", + "GRAYMAIL_SUPPRESSED", + "UNCONFIGURED_SENDING_DOMAIN", + "UNDELIVERABLE", + "CANCELLED_ABUSE", + "QUARANTINED_ADDRESS", + "ADDRESS_ONLY_ACCEPTED_ON_PROD", + "PORTAL_NOT_AUTHORIZED_FOR_APPLICATION", + "ADDRESS_LIST_BOMBED", + "ADDRESS_OPTED_OUT", + "RECIPIENT_FATIGUE_SUPPRESSED", + "TOO_MANY_RECIPIENTS", + "PREVIOUSLY_UNSUBSCRIBED_BRAND", + "NON_MARKETABLE_CONTACT", + "PREVIOUSLY_UNSUBSCRIBED_BUSINESS_UNIT", + "GDPR_DOI_ENABLED" + ] + }, + "requestedAt": { + "type": "string", + "description": "Time when the send was requested.", + "format": "date-time" + }, + "startedAt": { + "type": "string", + "description": "Time when the send began processing.", + "format": "date-time" + }, + "status": { + "type": "string", + "description": "Status of the send request.", + "enum": [ + "PENDING", + "PROCESSING", + "CANCELED", + "COMPLETE" + ] + } + }, + "description": "Describes the status of an email send request." + }, + "SmtpApiTokenRequestEgg": { + "required": [ + "campaignName", + "createContact" + ], + "type": "object", + "properties": { + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the SMTP API token." + } + }, + "description": "A request object to create a SMTP API token" + }, + "PublicSingleSendRequestEgg2": { + "required": [ + "emailId", + "message" + ], + "type": "object", + "properties": { + "customProperties": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": {} + }, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "type": "integer", + "description": "The content ID for the transactional email, which can be found in email tool UI.", + "format": "int32" + }, + "message": { + "$ref": "#/components/schemas/PublicSingleSendEmail" + }, + "contactProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "description": "A request to send a single transactional email asynchronously." + }, + "SmtpApiTokenView": { + "required": [ + "campaignName", + "createContact", + "createdAt", + "createdBy", + "emailCampaignId", + "id" + ], + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "description": "Timestamp generated when a token is created.", + "format": "date-time" + }, + "password": { + "type": "string", + "description": "Password used to log into the HubSpot SMTP server." + }, + "createdBy": { + "type": "string", + "description": "Email address of the user that sent the token creation request." + }, + "createContact": { + "type": "boolean", + "description": "Indicates whether a contact should be created for email recipients." + }, + "id": { + "type": "string", + "description": "User name to log into the HubSpot SMTP server." + }, + "emailCampaignId": { + "type": "string", + "description": "Identifier assigned to the campaign provided in the token creation request." + }, + "campaignName": { + "type": "string", + "description": "A name for the campaign tied to the token." + } + }, + "description": "A SMTP API token provides both an ID and password that can be used to send email through the HubSpot SMTP API." + } + }, + "responses": { + "Error": { + "description": "An error occurred.", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "securitySchemes": { + "oauth2": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://app.hubspot.com/oauth/authorize", + "tokenUrl": "https://api.hubapi.com/oauth/v1/token", + "scopes": { + "marketing.campaigns.read": "Read marketing campaigns", + "marketing.campaigns.write": "Write marketing campaigns", + "marketing.campaigns.revenue.read": "Read campaigns attribution revenue", + "forms": "Read from and write to my Forms", + "content": "Read from and write to my Content", + "marketing-email": "Marketing Single Send API access", + "transactional-email": "Transactional Emails", + "crm.objects.marketing_events.read": "Read marketing events", + "crm.objects.marketing_events.write": "Write marketing events" + } + } + } + }, + "private_apps": { + "type": "apiKey", + "name": "private-app", + "in": "header" + }, + "developer_hapikey": { + "type": "apiKey", + "name": "hapikey", + "in": "query" + } + } + }, + "x-hubspot-product-tier-requirements": { + "marketing": "PROFESSIONAL", + "sales": "FREE", + "service": "FREE", + "cms": "FREE", + "commerce": "FREE", + "crmHub": "FREE", + "dataHub": "FREE" + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/__init__.py b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/__init__.py new file mode 100644 index 00000000..127fa9fe --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/__init__.py @@ -0,0 +1,5910 @@ +"""Arcade Starter Tools for Hubspot_Marketing + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED BY TRANSPILING THE API STARTER TOOL JSON DEFINITIONS +IN THE ../wrapper_tools DIRECTORY INTO PYTHON CODE. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +import asyncio +import json +from enum import Enum +from typing import Annotated, Any + +import httpx +import jsonschema +from arcade_tdk import ToolContext, tool +from arcade_tdk.auth import OAuth2 +from arcade_tdk.errors import RetryableToolError + +from .request_body_schemas import REQUEST_BODY_SCHEMAS + +# Retry configuration +INITIAL_RETRY_DELAY = 0.5 # seconds + +HTTP_CLIENT = httpx.AsyncClient( + timeout=httpx.Timeout(60.0, connect=10.0), + limits=httpx.Limits(max_keepalive_connections=20, max_connections=100), + transport=httpx.AsyncHTTPTransport(retries=3), + http2=True, + follow_redirects=True, +) + + +class ToolMode(str, Enum): + """Mode for tools with complex request bodies.""" + + GET_REQUEST_SCHEMA = "get_request_schema" + EXECUTE = "execute" + + +def remove_none_values(data: dict[str, Any]) -> dict[str, Any]: + return {k: v for k, v in data.items() if v is not None} + + +async def make_request( + url: str, + method: str, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + content: str | None = None, + data: dict[str, Any] | None = None, + auth: tuple[str, str] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with retry logic for 5xx server errors.""" + for attempt in range(max_retries): + try: + response = await HTTP_CLIENT.request( + url=url, + auth=auth, + method=method, + params=params, + headers=headers, + content=content, + ) + response.raise_for_status() + except httpx.HTTPStatusError as e: + # Only retry on 5xx server errors + if e.response.status_code >= 500 and attempt < max_retries - 1: + # Exponential backoff: 0.5s, 1s, 2s + await asyncio.sleep(INITIAL_RETRY_DELAY * (2**attempt)) + continue + # Re-raise for 4xx errors or if max retries reached + raise + except httpx.RequestError: + # Don't retry request errors (network issues are handled by transport) + raise + else: + return response + + # This should never be reached, but satisfies type checker + raise httpx.RequestError("Max retries exceeded") + + +async def make_request_with_schema_validation( + url: str, + method: str, + request_data: dict[str, Any], + schema: dict[str, Any] | str, + auth: tuple[str, str] | None = None, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with schema validation on format errors.""" + # Parse schema if it's a string, skip validation if parsing fails + parsed_schema = None + if isinstance(schema, str): + try: + parsed_schema = json.loads(schema) + except Exception: + # If schema parsing fails, just skip validation + parsed_schema = None + else: + parsed_schema = schema + + try: + response = await make_request( + url=url, + auth=auth, + method=method, + params=params, + headers=headers, + content=json.dumps(request_data), + max_retries=max_retries, + ) + except httpx.HTTPStatusError as e: + # Only provide schema validation for format-related errors + if e.response.status_code in (400, 422): + api_error_details = f"API returned {e.response.status_code}: {e.response.text}" + + # Only run validation if we have a valid parsed schema + if parsed_schema is not None: + # Run validation to provide additional context + is_valid, validation_error = validate_json_against_schema( + request_data, parsed_schema + ) + + if not is_valid: + # Schema validation found issues - additional context + additional_context = ( + f"{api_error_details}\n\n" + f"Schema validation found the following issues:\n" + f"{validation_error}" + ) + else: + # Schema validation passed - just show API error + additional_context = api_error_details + else: + # No valid schema - just show API error + additional_context = api_error_details + + raise RetryableToolError( + message=(f"API request failed with validation error: {e.response.status_code}"), + developer_message=api_error_details, + additional_prompt_content=additional_context, + ) from e + else: + # For non-validation errors, re-raise as-is + raise + else: + return response + + +def validate_json_against_schema( + json_data: dict[str, Any], schema: dict[str, Any] +) -> tuple[bool, str | None]: + """Validate JSON data against an OpenAPI/JSON Schema. + + This provides full JSON Schema Draft 7 validation including: + - Required fields, types, enums + - Pattern validation (regex) + - Format validation (email, uuid, date-time, etc.) + - Min/max length and values + - oneOf, anyOf, allOf + - And all other JSON Schema features + + Args: + json_data: The JSON data to validate + schema: The JSON Schema to validate against + + Returns: + Tuple of (is_valid, error_messages). If valid, error_messages is None. + If invalid, error_messages contains all validation errors. + """ + try: + validator = jsonschema.Draft7Validator( + schema, format_checker=jsonschema.Draft7Validator.FORMAT_CHECKER + ) + # Collect ALL validation errors + errors = list(validator.iter_errors(json_data)) + if errors: + # Format all errors with their paths + error_messages = [] + for error in errors: + error_path = ".".join(str(p) for p in error.path) if error.path else "root" + error_messages.append(f"{error.message} at {error_path}") + # Join all errors with newlines + return False, "\n".join(error_messages) + else: + return True, None + except jsonschema.SchemaError as e: + return False, f"Invalid schema: {e.message}" + except Exception as e: + return False, f"Validation error: {e!s}" + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def get_campaign_spend_item( + context: ToolContext, + campaign_guid: Annotated[ + str, "Unique identifier for the marketing campaign to retrieve the spend item from." + ], + spend_item_identifier: Annotated[int, "Unique identifier for the spend item in the campaign."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}'.", +]: + """Retrieve details of a specific campaign spend item. + + Use this tool to get information about a campaign spend item by providing its spendId and campaignGuid.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}".format( # noqa: UP032 + campaignGuid=campaign_guid, spendId=spend_item_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def update_campaign_spend( + context: ToolContext, + campaign_guid: Annotated[str, "Unique identifier for the campaign."], + spend_amount: Annotated[ + float, + "The new amount value for the campaign spend. Specify this as a number representing the monetary value.", + ], + spend_identifier: Annotated[ + int, "Unique identifier for the spend item in the campaign to be updated." + ], + spend_item_name: Annotated[ + str, + "The new name for the campaign spend item. This should be a descriptive string defining the spend item.", + ], + spend_order: Annotated[ + int, + "The order or sequence number of the spend item within the campaign. It determines the priority or arrangement of the spend items.", + ], + spend_item_description: Annotated[ + str | None, "Details or notes about the campaign spend item." + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}'.", +]: + """Update a specific campaign spend item by ID. + + Use this tool to modify the details of a particular spend item in a marketing campaign by providing the campaign and spend identifiers.""" + request_data: Any = { + "amount": spend_amount, + "name": spend_item_name, + "description": spend_item_description, + "order": spend_order, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}".format( # noqa: UP032 + campaignGuid=campaign_guid, spendId=spend_identifier + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def remove_campaign_spend_item( + context: ToolContext, + campaign_identifier: Annotated[str, "Unique identifier for the specific marketing campaign."], + spend_item_id: Annotated[ + int, "Unique identifier for the specific spend item to be deleted from the campaign." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}'.", +]: + """Deletes a specific campaign spend item by ID. + + Use this tool to delete a specific spend item from a marketing campaign using its ID. This is useful for managing and updating campaign expenses in HubSpot Marketing.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}".format( # noqa: UP032 + campaignGuid=campaign_identifier, spendId=spend_item_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def update_campaign_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/update'." +]: + """Update a batch of marketing campaigns efficiently. + + Use this tool to update multiple marketing campaigns in a single request. The tool handles up to 50 campaigns per request, and can reset property values when an empty string is provided. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/campaigns/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def get_campaign_budget( + context: ToolContext, + budget_item_id: Annotated[int, "Unique identifier for the budget item to retrieve details."], + campaign_guid: Annotated[ + str, "The unique identifier for the marketing campaign to access its budget details." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}'.", +]: + """Retrieve details of a specific marketing campaign budget item. + + This tool is used to obtain information about a specific budget item within a marketing campaign by providing the campaign GUID and budget ID. Use this tool to access detailed budget data for analysis or reporting purposes.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}".format( # noqa: UP032 + campaignGuid=campaign_guid, budgetId=budget_item_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def update_campaign_budget( + context: ToolContext, + budget_amount: Annotated[ + float, + "The amount to set for the budget item. This is a numerical value representing the budget in the specified currency.", + ], + budget_id: Annotated[int, "Unique identifier for the budget item to be updated."], + budget_item_name: Annotated[ + str, + "The new name for the budget item. It should be a descriptive label that clearly identifies the budget item within the campaign.", + ], + campaign_guid: Annotated[ + str, + "A unique identifier for the campaign. Use this to specify which campaign's budget item to update.", + ], + priority_order: Annotated[ + int, "Specify the order in which the budget item appears. Accepted values are integers." + ], + budget_item_description: Annotated[ + str | None, + "A string to describe the budget item. Provide a brief explanation of what this budget is for.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}'.", +]: + """Update a specific campaign budget item by ID. + + Use this tool to update a particular budget item in a marketing campaign by providing the campaign GUID and the budget ID.""" + request_data: Any = { + "amount": budget_amount, + "name": budget_item_name, + "description": budget_item_description, + "order": priority_order, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}".format( # noqa: UP032 + campaignGuid=campaign_guid, budgetId=budget_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def delete_campaign_budget_item( + context: ToolContext, + budget_item_id: Annotated[int, "Unique identifier for the budget item to be deleted."], + campaign_guid: Annotated[ + str, "Unique identifier for the campaign to delete the budget item from." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}'.", +]: + """Delete a specific campaign budget item by ID. + + Use this tool to delete a specific budget item from a campaign using the campaignGuid and budgetId. Useful for managing or updating campaign budgets.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}".format( # noqa: UP032 + campaignGuid=campaign_guid, budgetId=budget_item_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def associate_asset_with_campaign( + context: ToolContext, + asset_id: Annotated[ + str, + "The unique identifier for the asset to be associated with a campaign. This should be provided as a string.", + ], + asset_type: Annotated[ + str, + "Specify the asset type to associate with the campaign. Allowed values are FORM, OBJECT_LIST, and EXTERNAL_WEB_URL.", + ], + campaign_unique_identifier: Annotated[ + str, + "Unique identifier for the campaign, formatted as a UUID. Essential for associating an asset with the correct campaign.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}'.", +]: + """Associate a specified asset with a HubSpot campaign. + + This tool is used to link various asset types such as forms, lists, or emails with a specific HubSpot campaign. It's useful for managing and organizing marketing efforts across different platforms.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}".format( # noqa: UP032 + campaignGuid=campaign_unique_identifier, assetType=asset_type, assetId=asset_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def disassociate_campaign_asset( + context: ToolContext, + asset_id: Annotated[ + str, "Unique identifier for the asset to be disassociated from the campaign." + ], + asset_type: Annotated[ + str, + "Specify the type of asset to disassociate, limited to FORM, OBJECT_LIST, or EXTERNAL_WEB_URL.", + ], + campaign_unique_identifier: Annotated[ + str, "Unique identifier for the campaign, formatted as a UUID." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}'.", +]: + """Disassociate an asset from a HubSpot marketing campaign. + + Use this tool to remove a specified asset from a marketing campaign. Supported asset types include Forms, Static lists, and External website pages.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}".format( # noqa: UP032 + campaignGuid=campaign_unique_identifier, assetType=asset_type, assetId=asset_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def get_campaign_budget_details( + context: ToolContext, + campaign_unique_identifier: Annotated[ + str, "Unique identifier for the campaign, formatted as a UUID." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/budget/totals'.", +]: + """Retrieve detailed budget and spend details for a campaign. + + This tool retrieves detailed information regarding the budget and spending for a specific marketing campaign, including total budget, total spend, and remaining budget. It's useful for understanding financial aspects of a campaign.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/totals".format( # noqa: UP032 + campaignGuid=campaign_unique_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def fetch_marketing_campaign_batches( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + fetch_start_date: Annotated[ + str | None, + "Start date to fetch asset metrics, formatted as YYYY-MM-DD. Determines the period for asset metrics. Optional. Only used when mode is 'execute'.", + ] = None, + end_date_for_asset_metrics: Annotated[ + str | None, + "End date to fetch asset metrics, formatted as YYYY-MM-DD. If not provided, no asset metrics will be fetched. Only used when mode is 'execute'.", + ] = None, + requested_properties: Annotated[ + list[str] | None, + "Comma-separated list of properties to return in the response. Ignored if values are empty, resulting in an empty properties map if not specified. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/read'." +]: + """Retrieve a batch of HubSpot marketing campaigns and assets. + + Use this tool to read a batch of marketing campaigns from HubSpot, along with their associated assets. The tool allows for processing up to 50 campaigns per request. Note that the campaigns returned may not be in the order requested, and duplicate campaign IDs will be handled by returning only unique entries. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["FETCHMARKETINGCAMPAIGNBATCHES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["FETCHMARKETINGCAMPAIGNBATCHES"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["FETCHMARKETINGCAMPAIGNBATCHES"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/campaigns/batch/read", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["FETCHMARKETINGCAMPAIGNBATCHES"], + params=remove_none_values({ + "startDate": fetch_start_date, + "endDate": end_date_for_asset_metrics, + "properties": requested_properties, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def get_marketing_campaigns( + context: ToolContext, + campaign_name_filter: Annotated[ + str | None, + "A substring to filter campaigns by name. Returns campaigns containing this substring. Optional: returns all if not provided.", + ] = None, + max_results_limit: Annotated[ + int | None, "Maximum number of campaigns to return (1-100). Default is 50." + ] = None, + pagination_cursor: Annotated[ + str | None, + "A cursor for pagination. If provided, results start after the given cursor. Example: NTI1Cg%3D%3D", + ] = None, + requested_properties: Annotated[ + list[str] | None, + "A list of properties to be included in the response. Comma-separate values are required. If any specified property is empty, it will be ignored.", + ] = None, + sort_by: Annotated[ + str | None, + "Specify the field to sort results by. Use '-' to denote descending order. Options are hs_name, createdAt, updatedAt. Default is hs_name.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/campaigns/'."]: + """Retrieve a page of marketing campaigns with optional filters. + + This tool allows retrieval of a page of marketing campaigns based on query parameters such as name filtering, sorting, and pagination. You can also control the properties included in the response.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/", + method="GET", + params=remove_none_values({ + "sort": sort_by, + "after": pagination_cursor, + "limit": max_results_limit, + "name": campaign_name_filter, + "properties": requested_properties, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def create_marketing_campaign( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/campaigns/'."]: + """Create a marketing campaign and retrieve its details. + + This tool creates a marketing campaign using provided properties and returns the campaign object, including essential details like campaignGuid and created properties. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGN"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGN"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGN"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/campaigns/", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGN"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def get_campaign_attribution_metrics( + context: ToolContext, + campaign_unique_identifier: Annotated[ + str, + "Unique identifier for the campaign, formatted as a UUID. Required to retrieve specific campaign metrics.", + ], + report_end_date: Annotated[ + str | None, + "Set the end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.", + ] = None, + start_date_for_report: Annotated[ + str | None, + "The start date for the report data, formatted as YYYY-MM-DD. Default is 2006-01-01.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/reports/metrics'.", +]: + """Retrieve attribution metrics for a specific campaign. + + Retrieves key attribution metrics for a specified campaign, including sessions, new contacts, and influenced contacts. Use this tool to analyze campaign performance.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/reports/metrics".format( # noqa: UP032 + campaignGuid=campaign_unique_identifier + ), + method="GET", + params=remove_none_values({"startDate": start_date_for_report, "endDate": report_end_date}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def list_campaign_assets( + context: ToolContext, + asset_type: Annotated[ + str, "The type of asset to fetch for the campaign, e.g., 'email', 'webpage'." + ], + campaign_identifier: Annotated[str, "Unique identifier for the campaign in UUID format."], + end_date_for_asset_metrics: Annotated[ + str | None, + "End date to fetch asset metrics, formatted as YYYY-MM-DD. Used for fetching metrics of assets within a specified period. Optional parameter.", + ] = None, + maximum_results_limit: Annotated[ + str | None, "The maximum number of asset results to return. Default is 10." + ] = None, + metrics_start_date: Annotated[ + str | None, + "Start date to fetch asset metrics, formatted as YYYY-MM-DD. Used to fetch metrics for a specified period. If not provided, no metrics will be fetched.", + ] = None, + pagination_cursor: Annotated[ + str | None, + "A cursor for pagination. If provided, results start after this cursor. Example: NTI1Cg%3D%3D", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}'.", +]: + """Retrieve all assets of a specified type for a campaign. + + This tool lists all assets of a particular type within a specified marketing campaign. It can also fetch asset metrics if start and end dates are provided, allowing for detailed analysis of campaign performance.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}".format( # noqa: UP032 + campaignGuid=campaign_identifier, assetType=asset_type + ), + method="GET", + params=remove_none_values({ + "after": pagination_cursor, + "limit": maximum_results_limit, + "startDate": metrics_start_date, + "endDate": end_date_for_asset_metrics, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def archive_campaigns_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/archive'." +]: + """Delete a batch of marketing campaigns. + + Use this tool to delete multiple marketing campaigns in a single batch request (up to 50 campaigns). The response will indicate if the request was processed, but it won't specify the success of individual deletions. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ARCHIVECAMPAIGNSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECAMPAIGNSBATCH"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["ARCHIVECAMPAIGNSBATCH"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/campaigns/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ARCHIVECAMPAIGNSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.revenue.read"])) +async def get_campaign_revenue_report( + context: ToolContext, + campaign_unique_identifier: Annotated[ + str, "Unique identifier for the campaign, formatted as a UUID." + ], + attribution_model: Annotated[ + str | None, + "The revenue attribution model to be used. Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED. Defaults to LINEAR.", + ] = None, + report_end_date: Annotated[ + str | None, + "End date for the report data in YYYY-MM-DD format. Defaults to the current date.", + ] = None, + report_start_date: Annotated[ + str | None, + "The start date for the report data in the format YYYY-MM-DD. Default is 2006-01-01.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/reports/revenue'.", +]: + """Fetch revenue attribution report for a specific campaign. + + This tool retrieves the revenue attribution report data for a specified marketing campaign using its unique campaign GUID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/reports/revenue".format( # noqa: UP032 + campaignGuid=campaign_unique_identifier + ), + method="GET", + params=remove_none_values({ + "attributionModel": attribution_model, + "startDate": report_start_date, + "endDate": report_end_date, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def create_marketing_campaign_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/create'." +]: + """Create a batch of marketing campaigns in HubSpot. + + This tool is used to batch create up to 50 marketing campaigns in HubSpot Marketing. The campaigns in the response may not be in the same order as they were submitted in the request. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGNBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGNBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGNBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/campaigns/batch/create", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEMARKETINGCAMPAIGNBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def add_campaign_budget_item( + context: ToolContext, + budget_amount: Annotated[ + float, + "The monetary amount for the budget item. It should be a numeric value denoting the budget amount to add to the campaign.", + ], + budget_item_name: Annotated[ + str, + "Name of the budget item to be added to the campaign. It should be descriptive and concise.", + ], + budget_item_order: Annotated[ + int, "The position or priority of the budget item in the list. Provide as an integer." + ], + campaign_id: Annotated[str, "Unique identifier for the campaign in HubSpot Marketing."], + budget_item_description: Annotated[ + str | None, + "A brief description of the budget item being added to the campaign. This can include details about what the budget will be used for and any other relevant information.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/campaigns/{campaignGuid}/budget'.", +]: + """Add a new budget item to a marketing campaign. + + Use this tool to add a budget item to an existing campaign in HubSpot Marketing. Ideal for updating campaign financials.""" + request_data: Any = { + "amount": budget_amount, + "name": budget_item_name, + "description": budget_item_description, + "order": budget_item_order, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget".format( # noqa: UP032 + campaignGuid=campaign_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def get_campaign_details( + context: ToolContext, + campaign_guid: Annotated[str, "Unique identifier for the campaign, formatted as a UUID."], + end_date_for_asset_metrics: Annotated[ + str | None, + "End date to fetch asset metrics, formatted as YYYY-MM-DD. If omitted, no metrics will be retrieved.", + ] = None, + metrics_start_date: Annotated[ + str | None, + "Start date for fetching asset metrics. Format as YYYY-MM-DD. Metrics are only retrieved if both start and end dates are provided.", + ] = None, + properties_list: Annotated[ + list[str] | None, + "List specific properties to return in the response. Leave empty for an empty properties map.", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}'." +]: + """Retrieve details and metrics for a specific marketing campaign. + + Use this tool to get detailed information about a marketing campaign using its campaignGuid. It also provides information about associated assets, and if start and end dates are given, metrics for those assets.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}".format( # noqa: UP032 + campaignGuid=campaign_guid + ), + method="GET", + params=remove_none_values({ + "startDate": metrics_start_date, + "endDate": end_date_for_asset_metrics, + "properties": properties_list, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def delete_marketing_campaign( + context: ToolContext, + campaign_guid: Annotated[str, "Unique identifier for the campaign, formatted as a UUID."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}'.", +]: + """Delete a specified marketing campaign. + + Use this tool to delete a marketing campaign from the system by providing the campaign's GUID. A 204 No Content response is returned, indicating the request was processed, regardless of whether the campaign existed.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}".format( # noqa: UP032 + campaignGuid=campaign_guid + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def update_campaign_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + campaign_uuid: Annotated[ + str | None, + "Unique identifier for the campaign, formatted as a UUID. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/marketing/v3/campaigns/{campaignGuid}'." +]: + """Update properties of a HubSpot marketing campaign. + + Use this tool to perform a partial update of a marketing campaign in HubSpot by providing the campaignGuid and the new property values. Note that only existing, mutable properties can be updated; read-only and non-existent properties will cause an error. Passing an empty string will reset a property's value. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not campaign_uuid: + missing_params.append(("campaign_uuid", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNPROPERTIES"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNPROPERTIES"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}".format( # noqa: UP032 + campaignGuid=campaign_uuid + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATECAMPAIGNPROPERTIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.read"])) +async def fetch_campaign_contact_ids( + context: ToolContext, + campaign_identifier: Annotated[str, "Unique identifier for the campaign formatted as a UUID."], + contact_type_filter: Annotated[ + str, + "Specifies the type of metric for filtering contacts. Options: contactFirstTouch, contactLastTouch, influencedContacts.", + ], + contact_fetch_limit: Annotated[ + int | None, "Specify the maximum number of contact IDs to retrieve, with a default of 100." + ] = None, + pagination_cursor: Annotated[ + str | None, + "A string cursor for pagination to start results after the given point. Example: NTI1Cg%3D%3D", + ] = None, + report_end_date: Annotated[ + str | None, + "The end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.", + ] = None, + start_date: Annotated[ + str | None, + "The start date for the report data in YYYY-MM-DD format. Default is 2006-01-01.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}'.", +]: + """Fetch contact IDs for a specific campaign and contact type. + + Use this tool to obtain the contact IDs associated with a particular marketing campaign and specified contact type in HubSpot. It is useful for analyzing campaign reach and engagement with specific contact demographics.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}".format( # noqa: UP032 + campaignGuid=campaign_identifier, contactType=contact_type_filter + ), + method="GET", + params=remove_none_values({ + "startDate": start_date, + "endDate": report_end_date, + "limit": contact_fetch_limit, + "after": pagination_cursor, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing.campaigns.write"])) +async def create_campaign_spend( + context: ToolContext, + campaign_id: Annotated[ + str, "Unique identifier for the marketing campaign to add the spend item to." + ], + spend_amount: Annotated[ + float, + "The monetary value of the spend item to be added to the campaign. This should be a numerical value representing the amount in the currency used by the campaign.", + ], + spend_item_name: Annotated[ + str, + "The name of the spend item to be created for the campaign. This should be a descriptive title or label for the expenditure.", + ], + spend_item_order: Annotated[ + int, "The order of the spend item in the campaign. Use an integer to specify the sequence." + ], + spend_description: Annotated[ + str | None, + "A brief description of the campaign spend item, detailing the nature or purpose of the expenditure.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/campaigns/{campaignGuid}/spend'.", +]: + """Create a new campaign spend item for a marketing campaign. + + This tool creates a new spend item for a specified marketing campaign. It should be called when you need to add or track expenditures related to a specific campaign.""" + request_data: Any = { + "amount": spend_amount, + "name": spend_item_name, + "description": spend_description, + "order": spend_item_order, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend".format( # noqa: UP032 + campaignGuid=campaign_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["forms"])) +async def get_form_by_id( + context: ToolContext, + form_id: Annotated[ + str, + "The unique identifier for the specific marketing form to retrieve. This ID is required to fetch the form details.", + ], + return_archived_only: Annotated[ + bool | None, "Set to true to return only archived forms." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/forms/{formId}_getById'." +]: + """Retrieve a marketing form by its ID. + + Use this tool to get detailed information about a specific marketing form by providing its unique form ID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/forms/{formId}".format(formId=form_id), # noqa: UP032 + method="GET", + params=remove_none_values({"archived": return_archived_only}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["forms"])) +async def update_hubspot_form( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + hubspot_form_id: Annotated[ + str | None, + "The unique identifier for the HubSpot form to update. This ID specifies which form's fields will be replaced. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'put-/marketing/v3/forms/{formId}_replace'." +]: + """Update all fields of a HubSpot form. + + Use this tool to update every field in a specified HubSpot form by replacing the current form definition. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTFORM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not hubspot_form_id: + missing_params.append(("hubspot_form_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTFORM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTFORM"] + "\n```" + ), + ) from e + + response = await make_request( + url="https://api.hubapi.com/marketing/v3/forms/{formId}".format(formId=hubspot_form_id), # noqa: UP032 + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["forms"])) +async def archive_marketing_form( + context: ToolContext, + form_id: Annotated[ + str, + "The ID of the form to archive in HubSpot. This is required to process the archive request.", + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/marketing/v3/forms/{formId}_archive'." +]: + """Archive a marketing form in HubSpot. + + Use this tool to archive a form in HubSpot Marketing, preventing new submissions. The form will be permanently deleted after 3 months.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/forms/{formId}".format(formId=form_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["forms"])) +async def update_hubspot_marketing_form( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + form_id: Annotated[ + str | None, + "The unique identifier for the form to update. Must be provided to specify which form's components to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/marketing/v3/forms/{formId}_update'." +]: + """Update components of a HubSpot marketing form. + + Use this tool to modify specific components of an existing marketing form in HubSpot by providing the form ID. Ideal for updating form details without creating a new form. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMARKETINGFORM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not form_id: + missing_params.append(("form_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMARKETINGFORM"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEHUBSPOTMARKETINGFORM"] + + "\n```" + ), + ) from e + + response = await make_request( + url="https://api.hubapi.com/marketing/v3/forms/{formId}".format(formId=form_id), # noqa: UP032 + method="PATCH", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["forms"])) +async def list_hubspot_forms( + context: ToolContext, + included_form_types: Annotated[ + list[str] | None, + "List of form types to include in results, e.g., 'hubspot', 'workflow', etc.", + ] = None, + paging_cursor_token: Annotated[ + str | None, + "The token indicating the cursor position for paginated results. Use `paging.next.after` from the previous response to fetch more results.", + ] = None, + results_per_page: Annotated[ + int | None, "Specify the maximum number of forms to retrieve per page." + ] = None, + return_only_archived_forms: Annotated[ + bool | None, "Set to true to return only archived forms in the results." + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/forms/_getPage'." +]: + """Retrieve a list of HubSpot marketing forms. + + Call this tool to obtain a list of marketing forms from HubSpot. It applies search filters if provided, otherwise returns the first 20 forms by default.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/forms/", + method="GET", + params=remove_none_values({ + "after": paging_cursor_token, + "limit": results_per_page, + "archived": return_only_archived_forms, + "formTypes": included_form_types, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["forms"])) +async def create_marketing_form( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/forms/_create'." +]: + """Create a new marketing form in HubSpot. + + This tool is used to add a new form to HubSpot's marketing systems. It should be called whenever you need to create a new form for collecting marketing data. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMARKETINGFORM"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGFORM"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGFORM"] + "\n```" + ), + ) from e + + response = await make_request( + url="https://api.hubapi.com/marketing/v3/forms/", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def get_email_statistics( + context: ToolContext, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/emails/statistics/list'." +]: + """Get aggregated email statistics in a specified time span. + + Use this tool to obtain aggregated statistics for emails sent within a specific time period. It also provides a list of all emails sent during that period.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/statistics/list", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing-email", "transactional-email"])) +async def publish_hubspot_email( + context: ToolContext, + hubspot_email_id: Annotated[ + str, "The unique identifier for the HubSpot marketing email to publish." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/publish'." +]: + """Publish a HubSpot marketing email. + + Use this tool to publish a marketing email in HubSpot by specifying the email ID. This should be called when you need to make an email live as part of a marketing campaign.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/publish".format( # noqa: UP032 + emailId=hubspot_email_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def create_ab_test_email_variation( + context: ToolContext, + email_content_id: Annotated[ + str, "ID of the email content to create a variation for A/B testing." + ], + variation_name: Annotated[ + str, + "The name of the new email variation for the A/B test. Provide a descriptive name to easily identify this variation.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/emails/ab-test/create-variation'.", +]: + """Create a new variation for an email A/B test. + + Use this tool to generate a new variation of an existing email for conducting A/B tests in your marketing campaigns. This is useful for testing different email content to optimize engagement and performance.""" + request_data: Any = {"variationName": variation_name, "contentId": email_content_id} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/ab-test/create-variation", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def fetch_email_statistics( + context: ToolContext, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/emails/statistics/histogram'.", +]: + """Fetch aggregated email statistics in specified intervals. + + This tool retrieves aggregated email statistics over specified time intervals, providing insights into email performance during each period.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/statistics/histogram", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def get_email_ab_test_variation( + context: ToolContext, + email_identifier: Annotated[ + str, "The unique identifier of the marketing email to obtain its A/B test variation." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/ab-test/get-variation'.", +]: + """Retrieve the variation of an A/B test marketing email. + + Use this tool to get the opposite variation of a specified A/B marketing email. Ideal for determining the alternative version presented in a marketing email campaign.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/ab-test/get-variation".format( # noqa: UP032 + emailId=email_identifier + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def reset_email_draft_to_live( + context: ToolContext, + email_id: Annotated[ + str, + "The unique identifier for the email draft to be reset. This is a string value used to specify which draft to revert.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/draft/reset'.", +]: + """Reset an email draft to match the live version. + + Use this tool to reset an email draft to a copy of its currently live version in HubSpot Marketing. This is useful when you want to discard changes made to a draft and revert to the original published version.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/draft/reset".format( # noqa: UP032 + emailId=email_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def restore_email_revision_to_draft( + context: ToolContext, + email_identifier: Annotated[ + str, + "The unique identifier of the marketing email whose revision is to be restored to draft. This should match the specific email ID format used by HubSpot.", + ], + revision_id: Annotated[ + str, "The unique identifier of the email revision to be restored to draft state." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft'.", +]: + """Restore a previous email revision to draft state. + + Use this tool to revert a marketing email back to a previous revision, setting it to DRAFT. This will overwrite any current content in the draft for that email.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft".format( # noqa: UP032 + emailId=email_identifier, revisionId=revision_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def retrieve_email_draft( + context: ToolContext, + email_id: Annotated[ + str, + "The unique identifier of the email to retrieve the draft for. This ID is used to specify which email's draft or published version should be accessed.", + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/draft'." +]: + """Retrieve the draft version of a specified email. + + This tool retrieves the draft version of a specified email by its ID from HubSpot Marketing. If no draft exists, the published version is returned instead. It should be used when you need to access the current draft or latest version of an email.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/draft".format(emailId=email_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def update_email_draft( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + email_id: Annotated[ + str | None, + "The unique identifier of the marketing email to update or create a draft for. This is required to specify which email draft you are modifying. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/marketing/v3/emails/{emailId}/draft'." +]: + """Create or update the draft version of a marketing email. + + This tool creates or updates the draft version of a marketing email. If no draft exists, it creates a draft from the current live email and applies changes. Use this tool to modify email drafts before finalizing them. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEEMAILDRAFT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not email_id: + missing_params.append(("email_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEEMAILDRAFT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPDATEEMAILDRAFT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/draft".format(emailId=email_id), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEEMAILDRAFT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def get_email_revisions( + context: ToolContext, + email_id: Annotated[ + str, "The unique identifier of the marketing email to retrieve revisions for." + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/revisions'." +]: + """Retrieve all versions of a marketing email. + + Use this tool to get a comprehensive list of all versions of a specified marketing email, each containing the full state of that version.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions".format( # noqa: UP032 + emailId=email_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing-email", "transactional-email"])) +async def unpublish_marketing_email( + context: ToolContext, + email_identifier: Annotated[ + str, "The unique identifier of the email you wish to unpublish in HubSpot Marketing." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/unpublish'.", +]: + """Unpublish a HubSpot marketing email. + + This tool is used to unpublish a specific email in HubSpot Marketing. It should be called when you want to deactivate or withdraw an email from being publicly available.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/unpublish".format( # noqa: UP032 + emailId=email_identifier + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def get_marketing_email_revision( + context: ToolContext, + email_id: Annotated[ + str, + "The unique identifier for the marketing email. This ID is required to specify which email's revision details to retrieve.", + ], + email_revision_id: Annotated[ + str, + "The unique ID of the specific email revision to retrieve. Provide the revisionId for accessing the exact version.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/revisions/{revisionId}'.", +]: + """Retrieve a specific revision of a marketing email. + + Use this tool to get details about a specific revision of a marketing email by providing the email and revision IDs.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions/{revisionId}".format( # noqa: UP032 + emailId=email_id, revisionId=email_revision_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def clone_hubspot_email( + context: ToolContext, + original_email_id: Annotated[ + str, "The unique identifier of the email you wish to clone in HubSpot." + ], + cloned_email_name: Annotated[ + str | None, + "The new name for the cloned email. This should be a descriptive string to identify the copy.", + ] = None, + email_language: Annotated[ + str | None, + "Specify the language for the cloned email, e.g., 'en' for English, 'fr' for French.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/emails/clone'."]: + """Clone an existing HubSpot marketing email. + + Use this tool to create a copy of an existing email in HubSpot's marketing platform. Ideal for reusing email templates and maintaining consistency in marketing campaigns.""" + request_data: Any = { + "id": original_email_id, + "cloneName": cloned_email_name, + "language": email_language, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/clone", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def hubspot_marketing_email_filter( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/emails/'."]: + """Retrieve and filter HubSpot marketing emails. + + Use this tool to retrieve and filter marketing emails from HubSpot. It allows you to apply various filters to find specific sets of emails based on your criteria.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/", + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def create_marketing_email( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'post-/marketing/v3/emails/'."]: + """Create a new marketing email in HubSpot. + + Use this tool to create a new marketing email through HubSpot's marketing platform, allowing for effective email campaigns. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMARKETINGEMAIL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGEMAIL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGEMAIL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/emails/", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEMARKETINGEMAIL"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def restore_email_revision( + context: ToolContext, + email_id: Annotated[ + str, + "The unique identifier for the marketing email you want to restore. This ID is required to specify which email's revision needs restoration.", + ], + revision_id: Annotated[ + str, "The unique identifier for the specific revision of the email to be restored." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore'.", +]: + """Restore a previous revision of a marketing email. + + Use this tool to revert a marketing email to a specified previous revision. The current version is archived, and the restored revision is assigned a new version number.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore".format( # noqa: UP032 + emailId=email_id, revisionId=revision_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def get_marketing_email_details( + context: ToolContext, + email_id: Annotated[ + str, + "The unique identifier for the specific marketing email. Required to retrieve email details.", + ], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}'." +]: + """Retrieve details for a specific marketing email. + + Use this tool to get comprehensive information about a marketing email by specifying its email ID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}".format(emailId=email_id), # noqa: UP032 + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def delete_marketing_email( + context: ToolContext, + email_id: Annotated[str, "The unique ID of the marketing email to be deleted."], +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'delete-/marketing/v3/emails/{emailId}'." +]: + """Delete an existing marketing email by ID. + + Use this tool to remove a specific marketing email from the HubSpot system by providing its unique email ID. This is useful for managing email lists and ensuring outdated or incorrect emails are removed.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}".format(emailId=email_id), # noqa: UP032 + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["content"])) +async def update_marketing_email_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + email_identifier: Annotated[ + str | None, + "The unique identifier of the marketing email to be updated. Required to specify which email's properties are being changed. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'patch-/marketing/v3/emails/{emailId}'." +]: + """Change properties of a marketing email. + + Use this tool to update properties of an existing marketing email by specifying the email ID. It helps in modifying content or settings of your marketing campaigns. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEMAILPROPERTIES"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not email_identifier: + missing_params.append(("email_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEMAILPROPERTIES"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEMAILPROPERTIES"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/emails/{emailId}".format(emailId=email_identifier), # noqa: UP032 + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEMAILPROPERTIES"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_marketing_event_participations_breakdown( + context: ToolContext, + marketing_event_id: Annotated[int, "The internal id of the marketing event in HubSpot."], + contact_identifier: Annotated[ + str | None, "The identifier of the Contact. It can be an email or internal ID." + ] = None, + last_retrieved_position_cursor: Annotated[ + str | None, "The cursor indicating the position of the last retrieved item for pagination." + ] = None, + participation_state: Annotated[ + str | None, + "The participation state filter, which can be REGISTERED, CANCELLED, ATTENDED, or NO_SHOW.", + ] = None, + response_size_limit: Annotated[ + int | None, "Set the maximum number of records to return. Default is 10, maximum is 100." + ] = 10, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown_getParticipationsBreakdownByMarketingEventId'.", +]: + """Retrieve participations breakdown for a specific marketing event. + + This tool fetches a detailed breakdown of participations for a specific marketing event identified by marketingEventId. It can be used to analyze participation metrics and insights for a given event.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown".format( # noqa: UP032 + marketingEventId=marketing_event_id + ), + method="GET", + params=remove_none_values({ + "contactIdentifier": contact_identifier, + "state": participation_state, + "limit": response_size_limit, + "after": last_retrieved_position_cursor, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def record_marketing_event_attendance( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + external_event_id: Annotated[ + str | None, + "The identifier for the marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + new_subscriber_state: Annotated[ + str | None, + "Specifies the new state of the contact in relation to the marketing event, such as 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + external_account_id: Annotated[ + str | None, + "The ID identifying the account associated with the marketing event in the external application. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create_recordByContactIds'.", +]: + """Record participation of HubSpot contacts in a Marketing Event. + + Use this tool to mark multiple HubSpot contacts as having participated in a specific marketing event. It is useful for updating contact records and timelines when contacts attend an event. The tool supports additional properties like 'joinedAt' and 'leftAt' for the 'attend' state. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RECORDMARKETINGEVENTATTENDANCE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not external_event_id: + missing_params.append(("external_event_id", "path")) + if not new_subscriber_state: + missing_params.append(("new_subscriber_state", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RECORDMARKETINGEVENTATTENDANCE"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RECORDMARKETINGEVENTATTENDANCE"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create".format( # noqa: UP032 + externalEventId=external_event_id, subscriberState=new_subscriber_state + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RECORDMARKETINGEVENTATTENDANCE"], + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def record_hubspot_subscriber_state( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + external_account_id: Annotated[ + str | None, + "The account ID associated with this marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + event_id_in_external_app: Annotated[ + str | None, + "The ID of the marketing event in the external application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + subscriber_state: Annotated[ + str | None, + "The new subscriber state for the HubSpot contacts and the specified marketing event, such as 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert_upsertByContactId'.", +]: + """Record subscriber state for HubSpot contacts and events. + + Record a subscriber state between multiple HubSpot contacts and a marketing event using HubSpot contact IDs. Note: Contacts must already exist in HubSpot. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RECORDHUBSPOTSUBSCRIBERSTATE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not external_account_id: + missing_params.append(("external_account_id", "query")) + if not event_id_in_external_app: + missing_params.append(("event_id_in_external_app", "path")) + if not subscriber_state: + missing_params.append(("subscriber_state", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RECORDHUBSPOTSUBSCRIBERSTATE"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RECORDHUBSPOTSUBSCRIBERSTATE"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert".format( # noqa: UP032 + externalEventId=event_id_in_external_app, subscriberState=subscriber_state + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RECORDHUBSPOTSUBSCRIBERSTATE"], + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_marketing_event_details( + context: ToolContext, + external_account_id: Annotated[ + str, "The accountId associated with this marketing event in the external event application." + ], + marketing_event_id: Annotated[ + str, "The unique identifier of the marketing event in the external application." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/events/{externalEventId}_getDetails'.", +]: + """Retrieve details of a specific marketing event. + + Fetches details of a marketing event using its externalEventId. Only events created by the requesting app can be accessed.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}".format( # noqa: UP032 + externalEventId=marketing_event_id + ), + method="GET", + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def upsert_marketing_event( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + external_event_id: Annotated[ + str | None, + "The ID of the marketing event in the external application. Used to upsert the event in HubSpot. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/marketing/v3/marketing-events/events/{externalEventId}_upsert'.", +]: + """Upsert a marketing event in HubSpot. + + Upserts a marketing event using the provided external event ID. If an event with that ID exists, it updates the event; otherwise, it creates a new one. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not external_event_id: + missing_params.append(("external_event_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}".format( # noqa: UP032 + externalEventId=external_event_id + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def delete_marketing_event( + context: ToolContext, + external_account_id: Annotated[ + str, + "The account ID associated with the marketing event to be deleted in the external event application.", + ], + marketing_event_id: Annotated[ + str, "The ID of the marketing event in the external event application to be deleted." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/marketing-events/events/{externalEventId}_archive'.", +]: + """Deletes a specified HubSpot marketing event. + + Use this tool to delete an existing marketing event in HubSpot by specifying the externalEventId. The event must have been created by the same app requesting the deletion.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}".format( # noqa: UP032 + externalEventId=marketing_event_id + ), + method="DELETE", + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def update_marketing_event_details( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + external_account_id: Annotated[ + str | None, + "The account ID associated with this marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + external_event_id: Annotated[ + str | None, + "The unique identifier of the marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/marketing/v3/marketing-events/events/{externalEventId}_update'.", +]: + """Update details of an existing marketing event. + + Use this tool to update the details of an existing marketing event identified by its external event ID. It is applicable only for events created by the same app. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTDETAILS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not external_account_id: + missing_params.append(("external_account_id", "query")) + if not external_event_id: + missing_params.append(("external_event_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTDETAILS"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTDETAILS"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}".format( # noqa: UP032 + externalEventId=external_event_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTDETAILS"], + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def upsert_marketing_events( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/upsert_upsert'.", +]: + """Upsert multiple marketing events in HubSpot. + + Upserts multiple marketing events. Updates existing events with the same ID or creates new ones if they don't exist. Only events created by the same app can be updated. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/upsert", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPSERTMARKETINGEVENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def record_event_participation_hubspot( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + external_event_id: Annotated[ + str | None, + "The ID of the marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + subscriber_state: Annotated[ + str | None, + "The new subscriber state for HubSpot contacts in the specified event. Options: 'register', 'attend', 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + external_account_id: Annotated[ + str | None, + "The account ID linked to the marketing event in the external event application. Only used when mode is 'execute'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create_recordByContactEmails'.", +]: + """Record participation of contacts in a HubSpot marketing event. + + Use this tool to record the attendance of HubSpot contacts in a marketing event using their email addresses. It can automatically create contacts if they do not exist and adds a timeline event for them. This is particularly useful for logging who attended or participated in specific marketing events. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RECORDEVENTPARTICIPATIONHUBSPOT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not external_event_id: + missing_params.append(("external_event_id", "path")) + if not subscriber_state: + missing_params.append(("subscriber_state", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RECORDEVENTPARTICIPATIONHUBSPOT"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["RECORDEVENTPARTICIPATIONHUBSPOT"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create".format( # noqa: UP032 + externalEventId=external_event_id, subscriberState=subscriber_state + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RECORDEVENTPARTICIPATIONHUBSPOT"], + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_marketing_event_participation_breakdown( + context: ToolContext, + external_account_id: Annotated[ + str, "The ID associated with the marketing event's account in the external application." + ], + external_event_id: Annotated[ + str, "The ID of the marketing event in the external event application." + ], + contact_identifier: Annotated[ + str | None, "The unique identifier for the contact, such as an email or internal ID." + ] = None, + pagination_cursor: Annotated[ + str | None, + "The cursor indicating the position of the last retrieved item, used for pagination.", + ] = None, + participation_state_filter: Annotated[ + str | None, + "The participation state to filter results. Possible values: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.", + ] = None, + response_size_limit: Annotated[ + int | None, "Maximum number of participations to retrieve. Default is 10, maximum is 100." + ] = 10, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown_getParticipationsBreakdownByExternalEventId'.", +]: + """Retrieve the participation breakdown for a marketing event. + + This tool fetches the participation breakdown for a specified marketing event, filtered by externalAccountId and externalEventId. It provides detailed insights on event participation metrics.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown".format( # noqa: UP032 + externalAccountId=external_account_id, externalEventId=external_event_id + ), + method="GET", + params=remove_none_values({ + "contactIdentifier": contact_identifier, + "state": participation_state_filter, + "limit": response_size_limit, + "after": pagination_cursor, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def fetch_event_details( + context: ToolContext, + marketing_event_object_id: Annotated[ + str, + "The internal ID of the marketing event in HubSpot. Used to fetch specific event details.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/{objectId}_getByObjectId'.", +]: + """Fetch details of a marketing event by its object ID. + + Use this tool to retrieve detailed information about a specific marketing event by providing its object ID. This can be useful for gaining insights into the event's specifics and managing marketing activities.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/{objectId}".format( # noqa: UP032 + objectId=marketing_event_object_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def remove_marketing_event( + context: ToolContext, + marketing_event_id: Annotated[ + str, "The internal ID of the marketing event to be deleted in HubSpot." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/marketing-events/{objectId}_archiveByObjectId'.", +]: + """Deletes a specified marketing event by objectId. + + Use this tool to delete an existing marketing event in HubSpot Marketing using its objectId. Call this tool when you need to remove a marketing event from the system.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/{objectId}".format( # noqa: UP032 + objectId=marketing_event_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def modify_event_information( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + event_internal_id: Annotated[ + str | None, + "The internal ID of the marketing event in HubSpot to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'patch-/marketing/v3/marketing-events/{objectId}_updateByObjectId'.", +]: + """Update details of a specific marketing event. + + Use this tool to update the details of an existing marketing event by providing the object's ID. It confirms whether the update was successful. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["MODIFYEVENTINFORMATION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not event_internal_id: + missing_params.append(("event_internal_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["MODIFYEVENTINFORMATION"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["MODIFYEVENTINFORMATION"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/{objectId}".format( # noqa: UP032 + objectId=event_internal_id + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["MODIFYEVENTINFORMATION"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def get_marketing_event_associated_lists( + context: ToolContext, + external_account_id: Annotated[ + str, "The account ID associated with the marketing event in the external application." + ], + external_event_id: Annotated[ + str, "The ID of the marketing event from the external event application." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists_getAllByExternalAccountAndEventIds'.", +]: + """Retrieve lists associated with a specific marketing event. + + Call this tool to get lists associated with a marketing event using external account and event IDs. Useful for accessing participant or attendee lists linked to specific marketing events.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists".format( # noqa: UP032 + externalAccountId=external_account_id, externalEventId=external_event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def get_marketing_event_lists( + context: ToolContext, + marketing_event_id: Annotated[ + str, "The internal ID of the marketing event in HubSpot to retrieve associated lists." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/associations/{marketingEventId}/lists_getAllByMarketingEventId'.", +]: + """Retrieve lists associated with a specific marketing event. + + This tool fetches all lists associated with a given marketing event using the marketing event ID. It should be called when you need to obtain lists connected to a particular marketing event for analysis or reporting purposes.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/associations/{marketingEventId}/lists".format( # noqa: UP032 + marketingEventId=marketing_event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def register_event_participation( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + marketing_event_id: Annotated[ + str | None, + "The internal ID of the marketing event in HubSpot. It is required to log participation for contacts. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + attendance_state: Annotated[ + str | None, + "The attendance state for the contact in the event. Options: 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create_recordByEmail'.", +]: + """Logs event participation for contacts using email addresses. + + Records participation of HubSpot contacts in a marketing event using emails. Automatically creates non-existing contacts and logs the event on their timeline. Applicable for 'attend' state, with optional 'joinedAt' and 'leftAt' properties. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["REGISTEREVENTPARTICIPATION"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not marketing_event_id: + missing_params.append(("marketing_event_id", "path")) + if not attendance_state: + missing_params.append(("attendance_state", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["REGISTEREVENTPARTICIPATION"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["REGISTEREVENTPARTICIPATION"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create".format( # noqa: UP032 + objectId=marketing_event_id, subscriberState=attendance_state + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["REGISTEREVENTPARTICIPATION"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_all_marketing_events( + context: ToolContext, + cursor_position_after: Annotated[ + str | None, + "The cursor indicating the position of the last retrieved item for pagination purposes.", + ] = None, + response_limit: Annotated[ + int | None, "Sets the maximum number of marketing events to retrieve, between 10 and 100." + ] = 10, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'get-/marketing/v3/marketing-events/_getAll'." +]: + """Retrieve all marketing events from the portal. + + This tool fetches all available marketing events, including manually created ones and those generated through the application. The events are sorted by objectId.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/", + method="GET", + params=remove_none_values({"after": cursor_position_after, "limit": response_limit}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def record_event_attendance( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + marketing_event_id: Annotated[ + str | None, + "The internal ID of the marketing event in HubSpot for which attendance is being recorded. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + attendance_state: Annotated[ + str | None, + "Specifies the attendance state of the contact: 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create_recordByContactId'.", +]: + """Record participation of HubSpot contacts in a marketing event. + + Use this tool to record the attendance of multiple HubSpot contacts at a marketing event using their HubSpot contact IDs. This also adds a timeline event to each contact's record. The tool is applicable for the \"attend\" state with optional properties like \"joinedAt\" and \"leftAt\". + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RECORDEVENTATTENDANCE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not marketing_event_id: + missing_params.append(("marketing_event_id", "path")) + if not attendance_state: + missing_params.append(("attendance_state", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RECORDEVENTATTENDANCE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RECORDEVENTATTENDANCE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create".format( # noqa: UP032 + objectId=marketing_event_id, subscriberState=attendance_state + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RECORDEVENTATTENDANCE"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def update_marketing_events_batch( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/batch/update_updateByObjectId'.", +]: + """Update multiple marketing events by objectId. + + This tool updates multiple marketing events in the HubSpot portal based on their objectId, if they exist. It should be called when you need to batch update event details efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTSBATCH"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTSBATCH"] + + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + + REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTSBATCH"] + + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/batch/update", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEMARKETINGEVENTSBATCH"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def delete_marketing_events( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/batch/archive_archiveByObjectId'.", +]: + """Delete multiple marketing events by object ID. + + This tool deletes specified marketing events based on their object IDs. Use it to clean up events from the portal. It returns a status indicating whether all or only some events were successfully deleted. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["DELETEMARKETINGEVENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETEMARKETINGEVENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["DELETEMARKETINGEVENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/batch/archive", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["DELETEMARKETINGEVENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_event_participation_counters( + context: ToolContext, + event_id: Annotated[ + str, + "The unique identifier for the marketing event in the external application. Required to retrieve participation data.", + ], + external_account_id: Annotated[ + str, "The account ID associated with the marketing event in the external application." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}_getParticipationsCountersByEventExternalId'.", +]: + """Retrieve participation counters for a specific marketing event. + + This tool fetches participation metrics for a marketing event using the externalAccountId and externalEventId. It should be called when you need detailed participation statistics for a specific event in HubSpot's marketing platform.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}".format( # noqa: UP032 + externalAccountId=external_account_id, externalEventId=event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def search_marketing_events_by_external_id( + context: ToolContext, + external_event_id: Annotated[ + str, + "The ID of the marketing event in the external event application used to search for matching events.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/{externalEventId}/identifiers_searchPortalEvents'.", +]: + """Search for marketing events by external ID. + + This tool retrieves all marketing events whose externalEventId matches the provided value. It returns object IDs and additional details for each matching event. Useful for finding all marketing events linked to a specific external ID after creation.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/{externalEventId}/identifiers".format( # noqa: UP032 + externalEventId=external_event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_marketing_event_participation_counters( + context: ToolContext, + marketing_event_id: Annotated[ + int, + "The internal ID of the marketing event in HubSpot, required to fetch participation counters.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{marketingEventId}_getParticipationsCountersByMarketingEventId'.", +]: + """Retrieve participation counters for a marketing event. + + This tool fetches the participation statistics for a specified marketing event using its internal identifier.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/participations/{marketingEventId}".format( # noqa: UP032 + marketingEventId=marketing_event_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def remove_marketing_events( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/delete_archive'.", +]: + """Delete multiple HubSpot marketing events by specific IDs. + + This tool deletes multiple HubSpot marketing events based on provided external account, event, and app IDs. It is used to remove events created by the calling app, ensuring events from other apps remain unaffected. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["REMOVEMARKETINGEVENTS"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["REMOVEMARKETINGEVENTS"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["REMOVEMARKETINGEVENTS"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/delete", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["REMOVEMARKETINGEVENTS"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def cancel_marketing_event( + context: ToolContext, + external_account_id: Annotated[ + str, "The account ID associated with the marketing event in the external event application." + ], + external_event_id: Annotated[ + str, + "The ID of the marketing event in the external event application. Required to identify the event to be cancelled.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/cancel_cancel'.", +]: + """Cancel a HubSpot marketing event. + + Use this tool to mark a specific HubSpot marketing event as cancelled by providing the external event ID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/cancel".format( # noqa: UP032 + externalEventId=external_event_id + ), + method="POST", + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def associate_list_with_marketing_event( + context: ToolContext, + list_id: Annotated[str, "The ILS ID of the list to associate with the marketing event."], + marketing_event_id: Annotated[ + str, "The internal ID of the marketing event in HubSpot for association." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_associateByMarketingEventId'.", +]: + """Associate a list with a marketing event by their IDs. + + This tool associates a specific list with a marketing event using the marketing event ID and the list ID. It is used when you need to connect a list of contacts to a marketing event for tracking and management purposes.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}".format( # noqa: UP032 + marketingEventId=marketing_event_id, listId=list_id + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def disassociate_list_from_marketing_event( + context: ToolContext, + list_identifier: Annotated[ + str, "The ILS ID of the list to be disassociated from the marketing event." + ], + marketing_event_id: Annotated[ + str, "The internal ID of the marketing event in HubSpot to disassociate the list from." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_disassociateByMarketingEventId'.", +]: + """Disassociate a list from a marketing event using event and list IDs. + + Use this tool to remove the association between a specific list and a marketing event by providing the marketing event ID and the list ID. It ensures that the list is no longer linked to the specified marketing event.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}".format( # noqa: UP032 + marketingEventId=marketing_event_id, listId=list_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def record_subscriber_state( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + external_account_id: Annotated[ + str | None, + "The account ID linked to the marketing event in the external application, required for identifying events. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + marketing_event_id: Annotated[ + str | None, + "The unique identifier for the marketing event in the external application. Required to record subscriber state. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + subscriber_state: Annotated[ + str | None, + "The new subscriber state for a HubSpot contact in the specified marketing event. Options include 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert_upsertByContactEmail'.", +]: + """Record a subscriber's state for a marketing event using email. + + This tool records the subscriber state of a HubSpot contact in relation to a specific marketing event using the contact's email. Note: the contact must already exist in HubSpot. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RECORDSUBSCRIBERSTATE"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not external_account_id: + missing_params.append(("external_account_id", "query")) + if not marketing_event_id: + missing_params.append(("marketing_event_id", "path")) + if not subscriber_state: + missing_params.append(("subscriber_state", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RECORDSUBSCRIBERSTATE"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["RECORDSUBSCRIBERSTATE"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert".format( # noqa: UP032 + externalEventId=marketing_event_id, subscriberState=subscriber_state + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RECORDSUBSCRIBERSTATE"], + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def link_list_to_event( + context: ToolContext, + external_account_id: Annotated[ + str, "The account ID associated with the marketing event in the external event application." + ], + external_event_id: Annotated[ + str, + "The ID of the marketing event in the external event application. Used to specify which event to associate with the list.", + ], + ils_list_id: Annotated[str, "The ILS ID of the list to associate with the marketing event."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'put-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_associateByExternalAccountAndEventIds'.", +]: + """Associates a marketing list with an event in HubSpot. + + This tool associates a list with a marketing event using the external account ID, external event ID, and ILS list ID. It should be called when you need to link a specific list to a marketing event for tracking or organizational purposes.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}".format( # noqa: UP032 + externalAccountId=external_account_id, + externalEventId=external_event_id, + listId=ils_list_id, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def disassociate_marketing_event_list( + context: ToolContext, + external_account_id: Annotated[ + str, "The account ID linked to the marketing event in the external application." + ], + list_id: Annotated[str, "The ILS ID of the list to be disassociated from the marketing event."], + marketing_event_id: Annotated[ + str, "ID of the marketing event in the external application to be disassociated." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_disassociateByExternalAccountAndEventIds'.", +]: + """Disassociate a list from a HubSpot marketing event using IDs. + + Use this tool to disassociate a list from a specific marketing event in HubSpot by providing the external account ID, external event ID, and list ID. This action is useful when you need to update or manage your marketing event associations.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}".format( # noqa: UP032 + externalAccountId=external_account_id, + externalEventId=marketing_event_id, + listId=list_id, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def mark_marketing_event_completed( + context: ToolContext, + event_end_datetime: Annotated[ + str, "The date and time when the marketing event ended. Expected in ISO 8601 format." + ], + event_start_date_time: Annotated[ + str, "The start date and time of the marketing event, formatted as an ISO 8601 string." + ], + external_account_id: Annotated[ + str, "The account ID associated with the marketing event in the external application." + ], + marketing_event_id: Annotated[ + str, "The unique ID of the marketing event in the external event application." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/complete_complete'.", +]: + """Mark a marketing event as completed in HubSpot. + + Use this tool to mark a marketing event as completed in HubSpot, identified by its externalEventId. This confirms that the specified event has been finalized.""" + request_data: Any = {"startDateTime": event_start_date_time, "endDateTime": event_end_datetime} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/complete".format( # noqa: UP032 + externalEventId=marketing_event_id + ), + method="POST", + params=remove_none_values({"externalAccountId": external_account_id}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.write"])) +async def create_marketing_event( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/marketing-events/events_create'.", +]: + """Create a new marketing event in HubSpot. + + This tool is used to create a new marketing event within the HubSpot platform. It should be called when a new event needs to be added to HubSpot's marketing event system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATEMARKETINGEVENT"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGEVENT"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["CREATEMARKETINGEVENT"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/marketing-events/events", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEMARKETINGEVENT"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def get_contact_participations_breakdown( + context: ToolContext, + contact_identifier: Annotated[ + str, "The identifier of the contact, which can be either an email or an internal ID." + ], + pagination_cursor: Annotated[ + str | None, "Cursor for the last retrieved item to manage pagination." + ] = None, + participation_state: Annotated[ + str | None, + "The participation state for the contact. Options: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.", + ] = None, + response_size_limit: Annotated[ + int | None, + "Specify the maximum number of participation records to return. The default is 10, and the maximum is 100.", + ] = 10, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown_getParticipationsBreakdownByContactId'.", +]: + """Retrieve a contact's event participation details by ID or email. + + This tool retrieves participation details for a specific contact in marketing events using their email or internal ID. It is useful for analyzing a contact's engagement in various events.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown".format( # noqa: UP032 + contactIdentifier=contact_identifier + ), + method="GET", + params=remove_none_values({ + "state": participation_state, + "limit": response_size_limit, + "after": pagination_cursor, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["crm.objects.marketing_events.read"])) +async def find_hubspot_marketing_events( + context: ToolContext, + external_event_id: Annotated[ + str, + "The ID of the marketing event in the external application (externalEventId) to search for.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/marketing-events/events/search_doSearch'.", +]: + """Fetch HubSpot marketing events by externalEventId. + + Use this tool to retrieve marketing events from HubSpot where the externalEventId matches the given request parameter. It only returns events created by the app making the request, excluding those made by other apps.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/marketing-events/events/search", + method="GET", + params=remove_none_values({"q": external_event_id}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["marketing-email", "transactional-email"])) +async def send_marketing_email( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], "Response from the API endpoint 'post-/marketing/v4/email/single-send'." +]: + """Send a template email to a specific recipient. + + This tool sends a marketing email using a predefined template to a specified recipient via HubSpot. It's useful for automating email campaigns and reaching target audiences efficiently. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SENDMARKETINGEMAIL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SENDMARKETINGEMAIL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SENDMARKETINGEMAIL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v4/email/single-send", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SENDMARKETINGEMAIL"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["transactional-email"])) +async def send_transactional_email( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/transactional/single-email/send_sendEmail'.", +]: + """Send a transactional email asynchronously. + + Use this tool to send a transactional email asynchronously and obtain the status of the email send with a statusId, which can be queried further using the Email Send Status API. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["SENDTRANSACTIONALEMAIL"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SENDTRANSACTIONALEMAIL"] + "\n```" + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n```json\n" + REQUEST_BODY_SCHEMAS["SENDTRANSACTIONALEMAIL"] + "\n```" + ), + ) from e + + response = await make_request_with_schema_validation( + url="https://api.hubapi.com/marketing/v3/transactional/single-email/send", + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["SENDTRANSACTIONALEMAIL"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["transactional-email"])) +async def query_smtp_tokens( + context: ToolContext, + campaign_name: Annotated[ + str | None, "Name of the campaign tied to the SMTP API token to query tokens." + ] = None, + email_campaign_id: Annotated[ + str | None, + "Identifier assigned to the campaign provided during the token creation. Used to retrieve a specific SMTP API token.", + ] = None, + maximum_tokens_to_return: Annotated[ + int | None, "Specify the maximum number of SMTP API tokens to return in the response." + ] = None, + result_pagination_start: Annotated[ + str | None, + "Specify a starting point for retrieving the next set of results. Use this for paginating through results.", + ] = None, +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/transactional/smtp-tokens_getTokensPage'.", +]: + """Retrieve SMTP API tokens by campaign name or emailCampaignId. + + Use this tool to query multiple SMTP API tokens associated with a campaign by its name, or to retrieve a single token using an emailCampaignId. This is useful for managing email campaigns and accessing specific token information.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/transactional/smtp-tokens", + method="GET", + params=remove_none_values({ + "campaignName": campaign_name, + "emailCampaignId": email_campaign_id, + "after": result_pagination_start, + "limit": maximum_tokens_to_return, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["transactional-email"])) +async def create_smtp_api_token( + context: ToolContext, + campaign_name: Annotated[str, "The name of the campaign associated with the SMTP API token."], + create_contact_for_recipients: Annotated[ + bool, + "Indicates whether a contact should be created for email recipients. Set to true to create a contact.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/transactional/smtp-tokens_createToken'.", +]: + """Creates a SMTP API token for transaction emails. + + This tool is used to create a new SMTP API token for sending transactional emails through HubSpot's marketing service. It should be called when a new token is needed for email operations.""" + request_data: Any = { + "createContact": create_contact_for_recipients, + "campaignName": campaign_name, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/transactional/smtp-tokens", + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["transactional-email"])) +async def reset_password_for_token( + context: ToolContext, + token_identifier: Annotated[ + str, "The unique string identifier for the token, used to reset its password." + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'post-/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset_resetPassword'.", +]: + """Resets the password for a specified token. + + This tool allows you to create a new password for a specified token, invalidating the old password. Use it when you need to reset the password associated with a specific SMTP token in HubSpot's marketing system.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset".format( # noqa: UP032 + tokenId=token_identifier + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["transactional-email"])) +async def get_smtp_token_by_id( + context: ToolContext, + smtp_token_id: Annotated[str, "The unique identifier of the SMTP token to be queried."], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'get-/marketing/v3/transactional/smtp-tokens/{tokenId}_getTokenById'.", +]: + """Retrieve details of an SMTP token using its ID. + + This tool is used to query a specific SMTP token by its ID within the HubSpot Marketing platform. Call this tool when you need to access detailed information about a particular SMTP transactional token.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/transactional/smtp-tokens/{tokenId}".format( # noqa: UP032 + tokenId=smtp_token_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_auth=OAuth2(id="arcade-hubspot", scopes=["transactional-email"])) +async def delete_smtp_token( + context: ToolContext, + smtp_token_id: Annotated[ + str, + "The unique identifier of the SMTP token to be deleted, provided during token creation.", + ], +) -> Annotated[ + dict[str, Any], + "Response from the API endpoint 'delete-/marketing/v3/transactional/smtp-tokens/{tokenId}_archiveToken'.", +]: + """Delete an SMTP token by ID in HubSpot Marketing. + + Use this tool to delete a specific SMTP token from HubSpot Marketing by providing the token ID. This is useful for managing and revoking access tokens when they are no longer needed or for security reasons.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="https://api.hubapi.com/marketing/v3/transactional/smtp-tokens/{tokenId}".format( # noqa: UP032 + tokenId=smtp_token_id + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( # noqa: UP032 + authorization=context.get_auth_token_or_empty() + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/request_body_schemas.py b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/request_body_schemas.py new file mode 100644 index 00000000..924ac661 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/tools/request_body_schemas.py @@ -0,0 +1,41 @@ +"""Request Body Schemas for API Tools + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED AND CONTAINS OpenAPI REQUEST BODY SCHEMAS +FOR TOOLS WITH COMPLEX REQUEST BODIES. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +from typing import Any + +REQUEST_BODY_SCHEMAS: dict[str, Any] = { + "UPDATECAMPAIGNBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id", "properties"], "type": "object", "properties": {"id": {"type": "string"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', + "FETCHMARKETINGCAMPAIGNBATCHES": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', + "CREATEMARKETINGCAMPAIGN": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}}}}', + "ARCHIVECAMPAIGNSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["id"], "type": "object", "properties": {"id": {"type": "string"}}}}}}', + "CREATEMARKETINGCAMPAIGNBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}}}}}}}', + "UPDATECAMPAIGNPROPERTIES": '{"required": ["properties"], "type": "object", "properties": {"properties": {"type": "object", "additionalProperties": {"type": "string"}}}}', + "UPDATEHUBSPOTFORM": '{"properties": {}, "allOf": [{"properties": {}, "oneOf": [{"$ref": "#/components/schemas/HubSpotFormDefinition", "has_circular_reference": true}]}, {"required": ["archived", "configuration", "createdAt", "displayOptions", "fieldGroups", "formType", "id", "legalConsentOptions", "name", "updatedAt"], "type": "object", "properties": {"formType": {"type": "string", "default": "hubspot", "enum": ["hubspot"]}, "id": {"type": "string"}, "name": {"type": "string"}, "createdAt": {"type": "string", "format": "date-time"}, "updatedAt": {"type": "string", "format": "date-time"}, "archived": {"type": "boolean"}, "archivedAt": {"type": "string", "format": "date-time"}, "fieldGroups": {"type": "array", "items": {"required": ["fields", "groupType", "richTextType"], "type": "object", "properties": {"groupType": {"type": "string", "enum": ["default_group", "progressive", "queued"]}, "richTextType": {"type": "string", "description": "The type of rich text included. The default value is text.", "enum": ["text", "image"]}, "richText": {"type": "string", "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields."}, "fields": {"type": "array", "description": "The form fields included in the group", "items": {"oneOf": [{"title": "email", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"required": ["dependentCondition", "dependentField"], "type": "object", "properties": {"dependentCondition": {"required": ["operator", "rangeEnd", "rangeStart", "value", "values"], "type": "object", "properties": {"rangeStart": {"type": "string"}, "values": {"type": "array", "items": {"type": "string"}}, "value": {"type": "string"}, "operator": {"type": "string", "enum": ["eq", "neq", "contains", "doesnt_contain", "str_starts_with", "str_ends_with", "lt", "lte", "gt", "gte", "between", "not_between", "within_time_reverse", "within_time", "set_any", "set_not_any", "set_all", "set_not_all", "set_eq", "set_neq", "is_not_empty"]}, "rangeEnd": {"type": "string"}}, "description": "A condition based on customer input"}, "dependentField": {"oneOf": [{"$ref": "#/components/schemas/EmailField", "has_circular_reference": true}, {"title": "phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "useCountryCodeSelect", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "useCountryCodeSelect": {"type": "boolean", "description": "Whether to display a country code drop down next to the phone field."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "phone", "enum": ["phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a phone number."}, {"title": "mobile_phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "mobile_phone", "enum": ["mobile_phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a mobile phone number."}, {"title": "single_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_line_text", "enum": ["single_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single-line text box."}, {"title": "multi_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multi_line_text", "enum": ["multi_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a multiple-line text box."}, {"title": "number", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "number", "enum": ["number"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a numeric value should be validated."}}, "description": "A form field used for collecting a numeric value."}, {"title": "single_checkbox", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_checkbox", "enum": ["single_checkbox"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single checkbox."}, {"title": "multiple_checkboxes", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multiple_checkboxes", "enum": ["multiple_checkboxes"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time."}, {"title": "dropdown", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "dropdown", "enum": ["dropdown"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A field consisting of a drop down with multiple choices."}, {"title": "radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "radio", "enum": ["radio"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of radio options, out of which one can be selected at a time."}, {"title": "datepicker", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "datepicker", "enum": ["datepicker"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used to select a date"}, {"title": "file", "required": ["allowMultipleFiles", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "allowMultipleFiles": {"type": "boolean", "description": "Whether to allow the upload of multiple files."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "file", "enum": ["file"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used for uploading one or more files."}, {"title": "payment_link_radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string"}, "hidden": {"type": "boolean"}, "name": {"type": "string"}, "options": {"type": "array", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string"}, "defaultValues": {"type": "array", "items": {"type": "string"}}, "dependentFields": {"type": "array", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string"}, "fieldType": {"type": "string", "default": "payment_link_radio", "enum": ["payment_link_radio"]}, "required": {"type": "boolean"}}}]}}, "description": "A form field that will be displayed based on what the customer entered in another field."}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "email", "enum": ["email"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["blockedEmailDomains", "useDefaultBlockList"], "type": "object", "properties": {"useDefaultBlockList": {"type": "boolean", "description": "Whether to block the free email providers."}, "blockedEmailDomains": {"type": "array", "description": "A list of email domains to block.", "items": {"type": "string"}}}, "description": "Describes how an email address should be validated."}}, "description": "A form field used for collecting an email address."}, {"title": "phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "useCountryCodeSelect", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "useCountryCodeSelect": {"type": "boolean", "description": "Whether to display a country code drop down next to the phone field."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "phone", "enum": ["phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a phone number."}, {"title": "mobile_phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "mobile_phone", "enum": ["mobile_phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a mobile phone number."}, {"title": "single_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_line_text", "enum": ["single_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single-line text box."}, {"title": "multi_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multi_line_text", "enum": ["multi_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a multiple-line text box."}, {"title": "number", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "number", "enum": ["number"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a numeric value should be validated."}}, "description": "A form field used for collecting a numeric value."}, {"title": "single_checkbox", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_checkbox", "enum": ["single_checkbox"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single checkbox."}, {"title": "multiple_checkboxes", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multiple_checkboxes", "enum": ["multiple_checkboxes"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time."}, {"title": "dropdown", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "dropdown", "enum": ["dropdown"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A field consisting of a drop down with multiple choices."}, {"title": "radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "radio", "enum": ["radio"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of radio options, out of which one can be selected at a time."}, {"title": "datepicker", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "datepicker", "enum": ["datepicker"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used to select a date"}, {"title": "file", "required": ["allowMultipleFiles", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "allowMultipleFiles": {"type": "boolean", "description": "Whether to allow the upload of multiple files."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "file", "enum": ["file"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used for uploading one or more files."}, {"title": "payment_link_radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string"}, "hidden": {"type": "boolean"}, "name": {"type": "string"}, "options": {"type": "array", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string"}, "defaultValues": {"type": "array", "items": {"type": "string"}}, "dependentFields": {"type": "array", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string"}, "fieldType": {"type": "string", "default": "payment_link_radio", "enum": ["payment_link_radio"]}, "required": {"type": "boolean"}}}]}}}, "description": "A collection of up to three form fields usually displayed in a row."}}, "configuration": {"required": ["allowLinkToResetKnownValues", "archivable", "cloneable", "createNewContactForNewEmail", "editable", "language", "notifyContactOwner", "notifyRecipients", "postSubmitAction", "prePopulateKnownValues", "recaptchaEnabled"], "type": "object", "properties": {"createNewContactForNewEmail": {"type": "boolean", "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records."}, "editable": {"type": "boolean", "description": "Whether the form can be edited."}, "allowLinkToResetKnownValues": {"type": "boolean", "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission."}, "lifecycleStages": {"type": "array", "items": {"required": ["objectTypeId", "value"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "The objectTypeId for both contact and company"}, "value": {"type": "string", "description": "The internal name of the contact\'s lifecycle stage set when submitting a form"}}}}, "postSubmitAction": {"required": ["type", "value"], "type": "object", "properties": {"type": {"type": "string", "description": "The action to take after submit. The default action is displaying a thank you message.", "enum": ["thank_you", "redirect_url"]}, "value": {"type": "string", "description": "The thank you text or the page to redirect to."}}, "description": "What should happen after the customer submits the form."}, "language": {"type": "string", "description": "The language of the form.", "enum": ["af", "ar-eg", "bg", "bn", "ca-es", "cs", "da", "de", "el", "en", "es", "es-mx", "fi", "fr", "fr-ca", "he-il", "hr", "hu", "id", "it", "ja", "ko", "lt", "ms", "nl", "no-no", "pl", "pt", "pt-br", "ro", "ru", "sk", "sl", "sv", "th", "tl", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"]}, "prePopulateKnownValues": {"type": "boolean", "description": "Whether contact fields should pre-populate with known information when a contact returns to your site."}, "cloneable": {"type": "boolean", "description": "Whether the form can be cloned."}, "notifyContactOwner": {"type": "boolean", "description": "Whether to send a notification email to the contact owner when a submission is received."}, "recaptchaEnabled": {"type": "boolean", "description": "Whether CAPTCHA (spam prevention) is enabled."}, "archivable": {"type": "boolean", "description": "Whether the form can be archived."}, "notifyRecipients": {"type": "array", "description": "The list of user IDs to receive a notification email when a submission is received.", "items": {"type": "string"}}}}, "displayOptions": {"required": ["renderRawHtml", "style", "submitButtonText", "theme"], "type": "object", "properties": {"renderRawHtml": {"type": "boolean", "description": "Whether the form will render as raw HTML as opposed to inside an iFrame."}, "cssClass": {"type": "string"}, "theme": {"type": "string", "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", "enum": ["default_style", "canvas", "linear", "round", "sharp", "legacy"]}, "submitButtonText": {"type": "string", "description": "The text displayed on the form submit button."}, "style": {"required": ["backgroundWidth", "fontFamily", "helpTextColor", "helpTextSize", "labelTextColor", "labelTextSize", "legalConsentTextColor", "legalConsentTextSize", "submitAlignment", "submitColor", "submitFontColor", "submitSize"], "type": "object", "properties": {"labelTextSize": {"type": "string"}, "legalConsentTextColor": {"type": "string"}, "fontFamily": {"type": "string"}, "legalConsentTextSize": {"type": "string"}, "backgroundWidth": {"type": "string"}, "helpTextSize": {"type": "string"}, "submitFontColor": {"type": "string"}, "labelTextColor": {"type": "string"}, "submitAlignment": {"type": "string", "enum": ["left", "right", "center"]}, "submitSize": {"type": "string"}, "helpTextColor": {"type": "string"}, "submitColor": {"type": "string"}}, "description": "Styling options for the form"}}, "description": "Options for styling the form."}, "legalConsentOptions": {"oneOf": [{"title": "none", "required": ["type"], "type": "object", "properties": {"type": {"type": "string", "default": "none", "enum": ["none"]}}}, {"title": "legitimate_interest", "required": ["lawfulBasis", "privacyText", "subscriptionTypeIds", "type"], "type": "object", "properties": {"subscriptionTypeIds": {"type": "array", "items": {"type": "integer", "format": "int64"}}, "lawfulBasis": {"type": "string", "enum": ["lead", "client", "other"]}, "type": {"type": "string", "default": "legitimate_interest", "enum": ["legitimate_interest"]}, "privacyText": {"type": "string"}}}, {"title": "explicit_consent_to_process", "required": ["communicationsCheckboxes", "privacyText", "type"], "type": "object", "properties": {"communicationsCheckboxes": {"type": "array", "items": {"required": ["label", "required", "subscriptionTypeId"], "type": "object", "properties": {"subscriptionTypeId": {"type": "integer", "format": "int32"}, "label": {"type": "string", "description": "The main label for the form field."}, "required": {"type": "boolean", "description": "Whether this checkbox is required when submitting the form."}}}}, "communicationConsentText": {"type": "string"}, "consentToProcessCheckboxLabel": {"type": "string"}, "consentToProcessFooterText": {"type": "string"}, "type": {"type": "string", "default": "explicit_consent_to_process", "enum": ["explicit_consent_to_process"]}, "privacyText": {"type": "string"}, "consentToProcessText": {"type": "string"}}}, {"title": "implicit_consent_to_process", "required": ["communicationsCheckboxes", "privacyText", "type"], "type": "object", "properties": {"communicationsCheckboxes": {"type": "array", "items": {"required": ["label", "required", "subscriptionTypeId"], "type": "object", "properties": {"subscriptionTypeId": {"type": "integer", "format": "int32"}, "label": {"type": "string", "description": "The main label for the form field."}, "required": {"type": "boolean", "description": "Whether this checkbox is required when submitting the form."}}}}, "communicationConsentText": {"type": "string"}, "type": {"type": "string", "default": "implicit_consent_to_process", "enum": ["implicit_consent_to_process"]}, "privacyText": {"type": "string"}, "consentToProcessText": {"type": "string"}}}]}}, "x-hubspot-sub-type-impl": true}]}', + "UPDATEHUBSPOTMARKETINGFORM": '{"type": "object", "properties": {"fieldGroups": {"type": "array", "description": "The fields in the form, grouped in rows.", "items": {"required": ["fields", "groupType", "richTextType"], "type": "object", "properties": {"groupType": {"type": "string", "enum": ["default_group", "progressive", "queued"]}, "richTextType": {"type": "string", "description": "The type of rich text included. The default value is text.", "enum": ["text", "image"]}, "richText": {"type": "string", "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields."}, "fields": {"type": "array", "description": "The form fields included in the group", "items": {"oneOf": [{"title": "email", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"required": ["dependentCondition", "dependentField"], "type": "object", "properties": {"dependentCondition": {"required": ["operator", "rangeEnd", "rangeStart", "value", "values"], "type": "object", "properties": {"rangeStart": {"type": "string"}, "values": {"type": "array", "items": {"type": "string"}}, "value": {"type": "string"}, "operator": {"type": "string", "enum": ["eq", "neq", "contains", "doesnt_contain", "str_starts_with", "str_ends_with", "lt", "lte", "gt", "gte", "between", "not_between", "within_time_reverse", "within_time", "set_any", "set_not_any", "set_all", "set_not_all", "set_eq", "set_neq", "is_not_empty"]}, "rangeEnd": {"type": "string"}}, "description": "A condition based on customer input"}, "dependentField": {"oneOf": [{"$ref": "#/components/schemas/EmailField", "has_circular_reference": true}, {"title": "phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "useCountryCodeSelect", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "useCountryCodeSelect": {"type": "boolean", "description": "Whether to display a country code drop down next to the phone field."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "phone", "enum": ["phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a phone number."}, {"title": "mobile_phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "mobile_phone", "enum": ["mobile_phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a mobile phone number."}, {"title": "single_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_line_text", "enum": ["single_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single-line text box."}, {"title": "multi_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multi_line_text", "enum": ["multi_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a multiple-line text box."}, {"title": "number", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "number", "enum": ["number"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a numeric value should be validated."}}, "description": "A form field used for collecting a numeric value."}, {"title": "single_checkbox", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_checkbox", "enum": ["single_checkbox"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single checkbox."}, {"title": "multiple_checkboxes", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multiple_checkboxes", "enum": ["multiple_checkboxes"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time."}, {"title": "dropdown", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "dropdown", "enum": ["dropdown"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A field consisting of a drop down with multiple choices."}, {"title": "radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "radio", "enum": ["radio"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of radio options, out of which one can be selected at a time."}, {"title": "datepicker", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "datepicker", "enum": ["datepicker"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used to select a date"}, {"title": "file", "required": ["allowMultipleFiles", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "allowMultipleFiles": {"type": "boolean", "description": "Whether to allow the upload of multiple files."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "file", "enum": ["file"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used for uploading one or more files."}, {"title": "payment_link_radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string"}, "hidden": {"type": "boolean"}, "name": {"type": "string"}, "options": {"type": "array", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string"}, "defaultValues": {"type": "array", "items": {"type": "string"}}, "dependentFields": {"type": "array", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string"}, "fieldType": {"type": "string", "default": "payment_link_radio", "enum": ["payment_link_radio"]}, "required": {"type": "boolean"}}}]}}, "description": "A form field that will be displayed based on what the customer entered in another field."}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "email", "enum": ["email"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["blockedEmailDomains", "useDefaultBlockList"], "type": "object", "properties": {"useDefaultBlockList": {"type": "boolean", "description": "Whether to block the free email providers."}, "blockedEmailDomains": {"type": "array", "description": "A list of email domains to block.", "items": {"type": "string"}}}, "description": "Describes how an email address should be validated."}}, "description": "A form field used for collecting an email address."}, {"title": "phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "useCountryCodeSelect", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "useCountryCodeSelect": {"type": "boolean", "description": "Whether to display a country code drop down next to the phone field."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "phone", "enum": ["phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a phone number."}, {"title": "mobile_phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "mobile_phone", "enum": ["mobile_phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a mobile phone number."}, {"title": "single_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_line_text", "enum": ["single_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single-line text box."}, {"title": "multi_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multi_line_text", "enum": ["multi_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a multiple-line text box."}, {"title": "number", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "number", "enum": ["number"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a numeric value should be validated."}}, "description": "A form field used for collecting a numeric value."}, {"title": "single_checkbox", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_checkbox", "enum": ["single_checkbox"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single checkbox."}, {"title": "multiple_checkboxes", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multiple_checkboxes", "enum": ["multiple_checkboxes"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time."}, {"title": "dropdown", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "dropdown", "enum": ["dropdown"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A field consisting of a drop down with multiple choices."}, {"title": "radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "radio", "enum": ["radio"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of radio options, out of which one can be selected at a time."}, {"title": "datepicker", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "datepicker", "enum": ["datepicker"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used to select a date"}, {"title": "file", "required": ["allowMultipleFiles", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "allowMultipleFiles": {"type": "boolean", "description": "Whether to allow the upload of multiple files."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "file", "enum": ["file"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used for uploading one or more files."}, {"title": "payment_link_radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string"}, "hidden": {"type": "boolean"}, "name": {"type": "string"}, "options": {"type": "array", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string"}, "defaultValues": {"type": "array", "items": {"type": "string"}}, "dependentFields": {"type": "array", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string"}, "fieldType": {"type": "string", "default": "payment_link_radio", "enum": ["payment_link_radio"]}, "required": {"type": "boolean"}}}]}}}, "description": "A collection of up to three form fields usually displayed in a row."}}, "archived": {"type": "boolean", "description": "Whether this form is archived."}, "configuration": {"required": ["allowLinkToResetKnownValues", "archivable", "cloneable", "createNewContactForNewEmail", "editable", "language", "notifyContactOwner", "notifyRecipients", "postSubmitAction", "prePopulateKnownValues", "recaptchaEnabled"], "type": "object", "properties": {"createNewContactForNewEmail": {"type": "boolean", "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records."}, "editable": {"type": "boolean", "description": "Whether the form can be edited."}, "allowLinkToResetKnownValues": {"type": "boolean", "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission."}, "lifecycleStages": {"type": "array", "items": {"required": ["objectTypeId", "value"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "The objectTypeId for both contact and company"}, "value": {"type": "string", "description": "The internal name of the contact\'s lifecycle stage set when submitting a form"}}}}, "postSubmitAction": {"required": ["type", "value"], "type": "object", "properties": {"type": {"type": "string", "description": "The action to take after submit. The default action is displaying a thank you message.", "enum": ["thank_you", "redirect_url"]}, "value": {"type": "string", "description": "The thank you text or the page to redirect to."}}, "description": "What should happen after the customer submits the form."}, "language": {"type": "string", "description": "The language of the form.", "enum": ["af", "ar-eg", "bg", "bn", "ca-es", "cs", "da", "de", "el", "en", "es", "es-mx", "fi", "fr", "fr-ca", "he-il", "hr", "hu", "id", "it", "ja", "ko", "lt", "ms", "nl", "no-no", "pl", "pt", "pt-br", "ro", "ru", "sk", "sl", "sv", "th", "tl", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"]}, "prePopulateKnownValues": {"type": "boolean", "description": "Whether contact fields should pre-populate with known information when a contact returns to your site."}, "cloneable": {"type": "boolean", "description": "Whether the form can be cloned."}, "notifyContactOwner": {"type": "boolean", "description": "Whether to send a notification email to the contact owner when a submission is received."}, "recaptchaEnabled": {"type": "boolean", "description": "Whether CAPTCHA (spam prevention) is enabled."}, "archivable": {"type": "boolean", "description": "Whether the form can be archived."}, "notifyRecipients": {"type": "array", "description": "The list of user IDs to receive a notification email when a submission is received.", "items": {"type": "string"}}}}, "name": {"type": "string", "description": "The name of the form. Expected to be unique for a hub."}, "legalConsentOptions": {"oneOf": [{"title": "none", "required": ["type"], "type": "object", "properties": {"type": {"type": "string", "default": "none", "enum": ["none"]}}}, {"title": "legitimate_interest", "required": ["lawfulBasis", "privacyText", "subscriptionTypeIds", "type"], "type": "object", "properties": {"subscriptionTypeIds": {"type": "array", "items": {"type": "integer", "format": "int64"}}, "lawfulBasis": {"type": "string", "enum": ["lead", "client", "other"]}, "type": {"type": "string", "default": "legitimate_interest", "enum": ["legitimate_interest"]}, "privacyText": {"type": "string"}}}, {"title": "explicit_consent_to_process", "required": ["communicationsCheckboxes", "privacyText", "type"], "type": "object", "properties": {"communicationsCheckboxes": {"type": "array", "items": {"required": ["label", "required", "subscriptionTypeId"], "type": "object", "properties": {"subscriptionTypeId": {"type": "integer", "format": "int32"}, "label": {"type": "string", "description": "The main label for the form field."}, "required": {"type": "boolean", "description": "Whether this checkbox is required when submitting the form."}}}}, "communicationConsentText": {"type": "string"}, "consentToProcessCheckboxLabel": {"type": "string"}, "consentToProcessFooterText": {"type": "string"}, "type": {"type": "string", "default": "explicit_consent_to_process", "enum": ["explicit_consent_to_process"]}, "privacyText": {"type": "string"}, "consentToProcessText": {"type": "string"}}}, {"title": "implicit_consent_to_process", "required": ["communicationsCheckboxes", "privacyText", "type"], "type": "object", "properties": {"communicationsCheckboxes": {"type": "array", "items": {"required": ["label", "required", "subscriptionTypeId"], "type": "object", "properties": {"subscriptionTypeId": {"type": "integer", "format": "int32"}, "label": {"type": "string", "description": "The main label for the form field."}, "required": {"type": "boolean", "description": "Whether this checkbox is required when submitting the form."}}}}, "communicationConsentText": {"type": "string"}, "type": {"type": "string", "default": "implicit_consent_to_process", "enum": ["implicit_consent_to_process"]}, "privacyText": {"type": "string"}, "consentToProcessText": {"type": "string"}}}]}, "displayOptions": {"required": ["renderRawHtml", "style", "submitButtonText", "theme"], "type": "object", "properties": {"renderRawHtml": {"type": "boolean", "description": "Whether the form will render as raw HTML as opposed to inside an iFrame."}, "cssClass": {"type": "string"}, "theme": {"type": "string", "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", "enum": ["default_style", "canvas", "linear", "round", "sharp", "legacy"]}, "submitButtonText": {"type": "string", "description": "The text displayed on the form submit button."}, "style": {"required": ["backgroundWidth", "fontFamily", "helpTextColor", "helpTextSize", "labelTextColor", "labelTextSize", "legalConsentTextColor", "legalConsentTextSize", "submitAlignment", "submitColor", "submitFontColor", "submitSize"], "type": "object", "properties": {"labelTextSize": {"type": "string"}, "legalConsentTextColor": {"type": "string"}, "fontFamily": {"type": "string"}, "legalConsentTextSize": {"type": "string"}, "backgroundWidth": {"type": "string"}, "helpTextSize": {"type": "string"}, "submitFontColor": {"type": "string"}, "labelTextColor": {"type": "string"}, "submitAlignment": {"type": "string", "enum": ["left", "right", "center"]}, "submitSize": {"type": "string"}, "helpTextColor": {"type": "string"}, "submitColor": {"type": "string"}}, "description": "Styling options for the form"}}, "description": "Options for styling the form."}}}', + "CREATEMARKETINGFORM": '{"properties": {}, "oneOf": [{"properties": {}, "allOf": [{"$ref": "#/components/schemas/FormDefinitionCreateRequestBase", "has_circular_reference": true}, {"required": ["archived", "configuration", "createdAt", "displayOptions", "fieldGroups", "formType", "legalConsentOptions", "name", "updatedAt"], "type": "object", "properties": {"formType": {"type": "string", "default": "hubspot", "enum": ["hubspot"]}, "name": {"type": "string"}, "createdAt": {"type": "string", "format": "date-time"}, "updatedAt": {"type": "string", "format": "date-time"}, "archived": {"type": "boolean"}, "archivedAt": {"type": "string", "format": "date-time"}, "fieldGroups": {"type": "array", "items": {"required": ["fields", "groupType", "richTextType"], "type": "object", "properties": {"groupType": {"type": "string", "enum": ["default_group", "progressive", "queued"]}, "richTextType": {"type": "string", "description": "The type of rich text included. The default value is text.", "enum": ["text", "image"]}, "richText": {"type": "string", "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields."}, "fields": {"type": "array", "description": "The form fields included in the group", "items": {"oneOf": [{"title": "email", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"required": ["dependentCondition", "dependentField"], "type": "object", "properties": {"dependentCondition": {"required": ["operator", "rangeEnd", "rangeStart", "value", "values"], "type": "object", "properties": {"rangeStart": {"type": "string"}, "values": {"type": "array", "items": {"type": "string"}}, "value": {"type": "string"}, "operator": {"type": "string", "enum": ["eq", "neq", "contains", "doesnt_contain", "str_starts_with", "str_ends_with", "lt", "lte", "gt", "gte", "between", "not_between", "within_time_reverse", "within_time", "set_any", "set_not_any", "set_all", "set_not_all", "set_eq", "set_neq", "is_not_empty"]}, "rangeEnd": {"type": "string"}}, "description": "A condition based on customer input"}, "dependentField": {"oneOf": [{"$ref": "#/components/schemas/EmailField", "has_circular_reference": true}, {"title": "phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "useCountryCodeSelect", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "useCountryCodeSelect": {"type": "boolean", "description": "Whether to display a country code drop down next to the phone field."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "phone", "enum": ["phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a phone number."}, {"title": "mobile_phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "mobile_phone", "enum": ["mobile_phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a mobile phone number."}, {"title": "single_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_line_text", "enum": ["single_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single-line text box."}, {"title": "multi_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multi_line_text", "enum": ["multi_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a multiple-line text box."}, {"title": "number", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "number", "enum": ["number"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a numeric value should be validated."}}, "description": "A form field used for collecting a numeric value."}, {"title": "single_checkbox", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_checkbox", "enum": ["single_checkbox"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single checkbox."}, {"title": "multiple_checkboxes", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multiple_checkboxes", "enum": ["multiple_checkboxes"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time."}, {"title": "dropdown", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "dropdown", "enum": ["dropdown"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A field consisting of a drop down with multiple choices."}, {"title": "radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "radio", "enum": ["radio"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of radio options, out of which one can be selected at a time."}, {"title": "datepicker", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "datepicker", "enum": ["datepicker"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used to select a date"}, {"title": "file", "required": ["allowMultipleFiles", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "allowMultipleFiles": {"type": "boolean", "description": "Whether to allow the upload of multiple files."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "file", "enum": ["file"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used for uploading one or more files."}, {"title": "payment_link_radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string"}, "hidden": {"type": "boolean"}, "name": {"type": "string"}, "options": {"type": "array", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string"}, "defaultValues": {"type": "array", "items": {"type": "string"}}, "dependentFields": {"type": "array", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string"}, "fieldType": {"type": "string", "default": "payment_link_radio", "enum": ["payment_link_radio"]}, "required": {"type": "boolean"}}}]}}, "description": "A form field that will be displayed based on what the customer entered in another field."}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "email", "enum": ["email"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["blockedEmailDomains", "useDefaultBlockList"], "type": "object", "properties": {"useDefaultBlockList": {"type": "boolean", "description": "Whether to block the free email providers."}, "blockedEmailDomains": {"type": "array", "description": "A list of email domains to block.", "items": {"type": "string"}}}, "description": "Describes how an email address should be validated."}}, "description": "A form field used for collecting an email address."}, {"title": "phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "useCountryCodeSelect", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "useCountryCodeSelect": {"type": "boolean", "description": "Whether to display a country code drop down next to the phone field."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "phone", "enum": ["phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a phone number."}, {"title": "mobile_phone", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required", "validation"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "mobile_phone", "enum": ["mobile_phone"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a phone number should be validated."}}, "description": "A form field used for collecting a mobile phone number."}, {"title": "single_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_line_text", "enum": ["single_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single-line text box."}, {"title": "multi_line_text", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multi_line_text", "enum": ["multi_line_text"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a multiple-line text box."}, {"title": "number", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "number", "enum": ["number"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}, "validation": {"required": ["maxAllowedDigits", "minAllowedDigits"], "type": "object", "properties": {"minAllowedDigits": {"type": "integer", "format": "int32"}, "maxAllowedDigits": {"type": "integer", "format": "int32"}}, "description": "Describes how a numeric value should be validated."}}, "description": "A form field used for collecting a numeric value."}, {"title": "single_checkbox", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "single_checkbox", "enum": ["single_checkbox"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a single checkbox."}, {"title": "multiple_checkboxes", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "multiple_checkboxes", "enum": ["multiple_checkboxes"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time."}, {"title": "dropdown", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "dropdown", "enum": ["dropdown"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A field consisting of a drop down with multiple choices."}, {"title": "radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "options": {"type": "array", "description": "The list of available choices for this field.", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "defaultValues": {"type": "array", "description": "The values selected by default. Those values will be submitted unless the customer modifies them.", "items": {"type": "string"}}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "radio", "enum": ["radio"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field consisting of a set of radio options, out of which one can be selected at a time."}, {"title": "datepicker", "required": ["dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "datepicker", "enum": ["datepicker"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used to select a date"}, {"title": "file", "required": ["allowMultipleFiles", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "A unique ID for this field\'s CRM object type. For example a CONTACT field will have the object type ID 0-1."}, "allowMultipleFiles": {"type": "boolean", "description": "Whether to allow the upload of multiple files."}, "hidden": {"type": "boolean", "description": "Whether a field should be hidden or not. Hidden fields won\'t appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in."}, "defaultValue": {"type": "string", "description": "The value filled in by default. This value will be submitted unless the customer modifies it."}, "name": {"type": "string", "description": "The identifier of the field. In combination with the object type ID, it must be unique."}, "description": {"type": "string", "description": "Additional text helping the customer to complete the field."}, "dependentFields": {"type": "array", "description": "A list of other fields to make visible based on the value filled in for this field.", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string", "description": "The main label for the form field."}, "placeholder": {"type": "string", "description": "The prompt text showing when the field isn\'t filled in."}, "fieldType": {"type": "string", "description": "Determines how the field will be displayed and validated.", "default": "file", "enum": ["file"]}, "required": {"type": "boolean", "description": "Whether a value for this field is required when submitting the form."}}, "description": "A form field used for uploading one or more files."}, {"title": "payment_link_radio", "required": ["defaultValues", "dependentFields", "fieldType", "hidden", "label", "name", "objectTypeId", "options", "required"], "type": "object", "properties": {"objectTypeId": {"type": "string"}, "hidden": {"type": "boolean"}, "name": {"type": "string"}, "options": {"type": "array", "items": {"required": ["displayOrder", "label", "value"], "type": "object", "properties": {"displayOrder": {"type": "integer", "description": "The order the choices will be displayed in.", "format": "int32"}, "description": {"type": "string"}, "label": {"type": "string", "description": "The visible label for this choice."}, "value": {"type": "string", "description": "The value which will be submitted if this choice is selected."}}}}, "description": {"type": "string"}, "defaultValues": {"type": "array", "items": {"type": "string"}}, "dependentFields": {"type": "array", "items": {"$ref": "#/components/schemas/DependentField", "has_circular_reference": true}}, "label": {"type": "string"}, "fieldType": {"type": "string", "default": "payment_link_radio", "enum": ["payment_link_radio"]}, "required": {"type": "boolean"}}}]}}}, "description": "A collection of up to three form fields usually displayed in a row."}}, "configuration": {"required": ["allowLinkToResetKnownValues", "archivable", "cloneable", "createNewContactForNewEmail", "editable", "language", "notifyContactOwner", "notifyRecipients", "postSubmitAction", "prePopulateKnownValues", "recaptchaEnabled"], "type": "object", "properties": {"createNewContactForNewEmail": {"type": "boolean", "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records."}, "editable": {"type": "boolean", "description": "Whether the form can be edited."}, "allowLinkToResetKnownValues": {"type": "boolean", "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission."}, "lifecycleStages": {"type": "array", "items": {"required": ["objectTypeId", "value"], "type": "object", "properties": {"objectTypeId": {"type": "string", "description": "The objectTypeId for both contact and company"}, "value": {"type": "string", "description": "The internal name of the contact\'s lifecycle stage set when submitting a form"}}}}, "postSubmitAction": {"required": ["type", "value"], "type": "object", "properties": {"type": {"type": "string", "description": "The action to take after submit. The default action is displaying a thank you message.", "enum": ["thank_you", "redirect_url"]}, "value": {"type": "string", "description": "The thank you text or the page to redirect to."}}, "description": "What should happen after the customer submits the form."}, "language": {"type": "string", "description": "The language of the form.", "enum": ["af", "ar-eg", "bg", "bn", "ca-es", "cs", "da", "de", "el", "en", "es", "es-mx", "fi", "fr", "fr-ca", "he-il", "hr", "hu", "id", "it", "ja", "ko", "lt", "ms", "nl", "no-no", "pl", "pt", "pt-br", "ro", "ru", "sk", "sl", "sv", "th", "tl", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"]}, "prePopulateKnownValues": {"type": "boolean", "description": "Whether contact fields should pre-populate with known information when a contact returns to your site."}, "cloneable": {"type": "boolean", "description": "Whether the form can be cloned."}, "notifyContactOwner": {"type": "boolean", "description": "Whether to send a notification email to the contact owner when a submission is received."}, "recaptchaEnabled": {"type": "boolean", "description": "Whether CAPTCHA (spam prevention) is enabled."}, "archivable": {"type": "boolean", "description": "Whether the form can be archived."}, "notifyRecipients": {"type": "array", "description": "The list of user IDs to receive a notification email when a submission is received.", "items": {"type": "string"}}}}, "displayOptions": {"required": ["renderRawHtml", "style", "submitButtonText", "theme"], "type": "object", "properties": {"renderRawHtml": {"type": "boolean", "description": "Whether the form will render as raw HTML as opposed to inside an iFrame."}, "cssClass": {"type": "string"}, "theme": {"type": "string", "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.", "enum": ["default_style", "canvas", "linear", "round", "sharp", "legacy"]}, "submitButtonText": {"type": "string", "description": "The text displayed on the form submit button."}, "style": {"required": ["backgroundWidth", "fontFamily", "helpTextColor", "helpTextSize", "labelTextColor", "labelTextSize", "legalConsentTextColor", "legalConsentTextSize", "submitAlignment", "submitColor", "submitFontColor", "submitSize"], "type": "object", "properties": {"labelTextSize": {"type": "string"}, "legalConsentTextColor": {"type": "string"}, "fontFamily": {"type": "string"}, "legalConsentTextSize": {"type": "string"}, "backgroundWidth": {"type": "string"}, "helpTextSize": {"type": "string"}, "submitFontColor": {"type": "string"}, "labelTextColor": {"type": "string"}, "submitAlignment": {"type": "string", "enum": ["left", "right", "center"]}, "submitSize": {"type": "string"}, "helpTextColor": {"type": "string"}, "submitColor": {"type": "string"}}, "description": "Styling options for the form"}}, "description": "Options for styling the form."}, "legalConsentOptions": {"oneOf": [{"title": "none", "required": ["type"], "type": "object", "properties": {"type": {"type": "string", "default": "none", "enum": ["none"]}}}, {"title": "legitimate_interest", "required": ["lawfulBasis", "privacyText", "subscriptionTypeIds", "type"], "type": "object", "properties": {"subscriptionTypeIds": {"type": "array", "items": {"type": "integer", "format": "int64"}}, "lawfulBasis": {"type": "string", "enum": ["lead", "client", "other"]}, "type": {"type": "string", "default": "legitimate_interest", "enum": ["legitimate_interest"]}, "privacyText": {"type": "string"}}}, {"title": "explicit_consent_to_process", "required": ["communicationsCheckboxes", "privacyText", "type"], "type": "object", "properties": {"communicationsCheckboxes": {"type": "array", "items": {"required": ["label", "required", "subscriptionTypeId"], "type": "object", "properties": {"subscriptionTypeId": {"type": "integer", "format": "int32"}, "label": {"type": "string", "description": "The main label for the form field."}, "required": {"type": "boolean", "description": "Whether this checkbox is required when submitting the form."}}}}, "communicationConsentText": {"type": "string"}, "consentToProcessCheckboxLabel": {"type": "string"}, "consentToProcessFooterText": {"type": "string"}, "type": {"type": "string", "default": "explicit_consent_to_process", "enum": ["explicit_consent_to_process"]}, "privacyText": {"type": "string"}, "consentToProcessText": {"type": "string"}}}, {"title": "implicit_consent_to_process", "required": ["communicationsCheckboxes", "privacyText", "type"], "type": "object", "properties": {"communicationsCheckboxes": {"type": "array", "items": {"required": ["label", "required", "subscriptionTypeId"], "type": "object", "properties": {"subscriptionTypeId": {"type": "integer", "format": "int32"}, "label": {"type": "string", "description": "The main label for the form field."}, "required": {"type": "boolean", "description": "Whether this checkbox is required when submitting the form."}}}}, "communicationConsentText": {"type": "string"}, "type": {"type": "string", "default": "implicit_consent_to_process", "enum": ["implicit_consent_to_process"]}, "privacyText": {"type": "string"}, "consentToProcessText": {"type": "string"}}}]}}, "x-hubspot-sub-type-impl": true}]}]}', + "UPDATEEMAILDRAFT": '{"type": "object", "properties": {"rssData": {"type": "object", "properties": {"blogImageMaxWidth": {"type": "integer", "format": "int32"}, "blogEmailType": {"type": "string"}, "hubspotBlogId": {"type": "string"}, "rssEntryTemplate": {"type": "string"}, "timing": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "maxEntries": {"type": "integer", "format": "int32"}, "useHeadlineAsSubject": {"type": "boolean"}, "blogLayout": {"type": "string"}, "url": {"type": "string"}}, "description": "RSS related data if it is a blog or rss email."}, "subject": {"type": "string", "description": "The subject of the email."}, "testing": {"type": "object", "properties": {"isAbVariation": {"type": "boolean"}, "abSamplingDefault": {"type": "string", "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abSampleSizeDefault": {"type": "string", "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abStatus": {"type": "string", "description": "Status of the AB test.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abTestPercentage": {"type": "integer", "description": "The size of your test group.", "format": "int32"}, "hoursToWait": {"type": "integer", "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", "format": "int32"}, "testId": {"type": "string", "description": "The ID of the AB test."}, "abSuccessMetric": {"type": "string", "description": "Metric to determine the version that will be sent to the remaining contacts.", "enum": ["CLICKS_BY_OPENS", "CLICKS_BY_DELIVERED", "OPENS_BY_DELIVERED"]}}, "description": "AB testing related data. This property is only returned for AB type emails."}, "publishDate": {"type": "string", "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", "format": "date-time"}, "language": {"type": "string", "enum": ["af", "af-na", "af-za", "agq", "agq-cm", "ak", "ak-gh", "am", "am-et", "ann", "ann-ng", "ar", "ar-001", "ar-ae", "ar-bh", "ar-dj", "ar-dz", "ar-eg", "ar-eh", "ar-er", "ar-il", "ar-iq", "ar-jo", "ar-km", "ar-kw", "ar-lb", "ar-ly", "ar-ma", "ar-mr", "ar-om", "ar-ps", "ar-qa", "ar-sa", "ar-sd", "ar-so", "ar-ss", "ar-sy", "ar-td", "ar-tn", "ar-ye", "as", "asa", "asa-tz", "ast", "ast-es", "as-in", "az", "az-az", "bas", "bas-cm", "be", "bem", "bem-zm", "bez", "bez-tz", "be-by", "bg", "bgc", "bgc-in", "bg-bg", "bho", "bho-in", "bm", "bm-ml", "bn", "bn-bd", "bn-in", "bo", "bo-cn", "bo-in", "br", "brx", "brx-in", "br-fr", "bs", "bs-ba", "ca", "ca-ad", "ca-es", "ca-fr", "ca-it", "ccp", "ccp-bd", "ccp-in", "ce", "ceb", "ceb-ph", "ce-ru", "cgg", "cgg-ug", "chr", "chr-us", "ckb", "ckb-iq", "ckb-ir", "cs", "cs-cz", "cu", "cu-ru", "cv", "cv-ru", "cy", "cy-gb", "da", "dav", "dav-ke", "da-dk", "da-gl", "de", "de-at", "de-be", "de-ch", "de-de", "de-gr", "de-it", "de-li", "de-lu", "dje", "dje-ne", "doi", "doi-in", "dsb", "dsb-de", "dua", "dua-cm", "dyo", "dyo-sn", "dz", "dz-bt", "ebu", "ebu-ke", "ee", "ee-gh", "ee-tg", "el", "el-cy", "el-gr", "en", "en-001", "en-150", "en-ae", "en-ag", "en-ai", "en-as", "en-at", "en-au", "en-bb", "en-be", "en-bi", "en-bm", "en-bs", "en-bw", "en-bz", "en-ca", "en-cc", "en-ch", "en-ck", "en-cm", "en-cn", "en-cx", "en-cy", "en-de", "en-dg", "en-dk", "en-dm", "en-ee", "en-eg", "en-er", "en-es", "en-fi", "en-fj", "en-fk", "en-fm", "en-fr", "en-gb", "en-gd", "en-gg", "en-gh", "en-gi", "en-gm", "en-gu", "en-gy", "en-hk", "en-ie", "en-il", "en-im", "en-in", "en-io", "en-je", "en-jm", "en-ke", "en-ki", "en-kn", "en-ky", "en-lc", "en-lr", "en-ls", "en-lu", "en-mg", "en-mh", "en-mo", "en-mp", "en-ms", "en-mt", "en-mu", "en-mv", "en-mw", "en-mx", "en-my", "en-na", "en-nf", "en-ng", "en-nl", "en-nr", "en-nu", "en-nz", "en-pg", "en-ph", "en-pk", "en-pn", "en-pr", "en-pw", "en-rw", "en-sb", "en-sc", "en-sd", "en-se", "en-sg", "en-sh", "en-si", "en-sl", "en-ss", "en-sx", "en-sz", "en-tc", "en-tk", "en-tn", "en-to", "en-tt", "en-tv", "en-tz", "en-ug", "en-um", "en-us", "en-vc", "en-vg", "en-vi", "en-vu", "en-ws", "en-za", "en-zm", "en-zw", "eo", "eo-001", "es", "es-419", "es-ar", "es-bo", "es-br", "es-bz", "es-cl", "es-co", "es-cr", "es-cu", "es-do", "es-ea", "es-ec", "es-es", "es-gq", "es-gt", "es-hn", "es-ic", "es-mx", "es-ni", "es-pa", "es-pe", "es-ph", "es-pr", "es-py", "es-sv", "es-us", "es-uy", "es-ve", "et", "et-ee", "eu", "eu-es", "ewo", "ewo-cm", "fa", "fa-af", "fa-ir", "ff", "ff-bf", "ff-cm", "ff-gh", "ff-gm", "ff-gn", "ff-gw", "ff-lr", "ff-mr", "ff-ne", "ff-ng", "ff-sl", "ff-sn", "fi", "fil", "fil-ph", "fi-fi", "fo", "fo-dk", "fo-fo", "fr", "frr", "frr-de", "fr-be", "fr-bf", "fr-bi", "fr-bj", "fr-bl", "fr-ca", "fr-cd", "fr-cf", "fr-cg", "fr-ch", "fr-ci", "fr-cm", "fr-dj", "fr-dz", "fr-fr", "fr-ga", "fr-gf", "fr-gn", "fr-gp", "fr-gq", "fr-ht", "fr-km", "fr-lu", "fr-ma", "fr-mc", "fr-mf", "fr-mg", "fr-ml", "fr-mq", "fr-mr", "fr-mu", "fr-nc", "fr-ne", "fr-pf", "fr-pm", "fr-re", "fr-rw", "fr-sc", "fr-sn", "fr-sy", "fr-td", "fr-tg", "fr-tn", "fr-vu", "fr-wf", "fr-yt", "fur", "fur-it", "fy", "fy-nl", "ga", "ga-gb", "ga-ie", "gd", "gd-gb", "gl", "gl-es", "gsw", "gsw-ch", "gsw-fr", "gsw-li", "gu", "guz", "guz-ke", "gu-in", "gv", "gv-im", "ha", "haw", "haw-us", "ha-gh", "ha-ne", "ha-ng", "he", "he-il", "hi", "hi-in", "hr", "hr-ba", "hr-hr", "hsb", "hsb-de", "hu", "hu-hu", "hy", "hy-am", "ia", "ia-001", "id", "ig", "ig-ng", "ii", "ii-cn", "id-id", "is", "is-is", "it", "it-ch", "it-it", "it-sm", "it-va", "ja", "ja-jp", "jgo", "jgo-cm", "yi", "yi-001", "jmc", "jmc-tz", "jv", "jv-id", "ka", "kab", "kab-dz", "kam", "kam-ke", "ka-ge", "kde", "kde-tz", "kea", "kea-cv", "kgp", "kgp-br", "khq", "khq-ml", "ki", "ki-ke", "kk", "kkj", "kkj-cm", "kk-kz", "kl", "kln", "kln-ke", "kl-gl", "km", "km-kh", "kn", "kn-in", "ko", "kok", "kok-in", "ko-kp", "ko-kr", "ks", "ksb", "ksb-tz", "ksf", "ksf-cm", "ksh", "ksh-de", "ks-in", "ku", "ku-tr", "kw", "kw-gb", "ky", "ky-kg", "lag", "lag-tz", "lb", "lb-lu", "lg", "lg-ug", "lkt", "lkt-us", "ln", "ln-ao", "ln-cd", "ln-cf", "ln-cg", "lo", "lo-la", "lrc", "lrc-iq", "lrc-ir", "lt", "lt-lt", "lu", "luo", "luo-ke", "luy", "luy-ke", "lu-cd", "lv", "lv-lv", "mai", "mai-in", "mas", "mas-ke", "mas-tz", "mdf", "mdf-ru", "mer", "mer-ke", "mfe", "mfe-mu", "mg", "mgh", "mgh-mz", "mgo", "mgo-cm", "mg-mg", "mi", "mi-nz", "mk", "mk-mk", "ml", "ml-in", "mn", "mni", "mni-in", "mn-mn", "mr", "mr-in", "ms", "ms-bn", "ms-id", "ms-my", "ms-sg", "mt", "mt-mt", "mua", "mua-cm", "my", "my-mm", "mzn", "mzn-ir", "naq", "naq-na", "nb", "nb-no", "nb-sj", "nd", "nds", "nds-de", "nds-nl", "nd-zw", "ne", "ne-in", "ne-np", "nl", "nl-aw", "nl-be", "nl-bq", "nl-ch", "nl-cw", "nl-lu", "nl-nl", "nl-sr", "nl-sx", "nmg", "nmg-cm", "nn", "nnh", "nnh-cm", "nn-no", "no", "no-no", "nus", "nus-ss", "nyn", "nyn-ug", "oc", "oc-es", "oc-fr", "om", "om-et", "om-ke", "or", "or-in", "os", "os-ge", "os-ru", "pa", "pa-in", "pa-pk", "pcm", "pcm-ng", "pis", "pis-sb", "pl", "pl-pl", "prg", "prg-001", "ps", "ps-af", "ps-pk", "pt", "pt-ao", "pt-br", "pt-ch", "pt-cv", "pt-gq", "pt-gw", "pt-lu", "pt-mo", "pt-mz", "pt-pt", "pt-st", "pt-tl", "qu", "qu-bo", "qu-ec", "qu-pe", "raj", "raj-in", "rm", "rm-ch", "rn", "rn-bi", "ro", "rof", "rof-tz", "ro-md", "ro-ro", "ru", "ru-by", "ru-kg", "ru-kz", "ru-md", "ru-ru", "ru-ua", "rw", "rwk", "rwk-tz", "rw-rw", "sa", "sah", "sah-ru", "saq", "saq-ke", "sat", "sat-in", "sa-in", "sbp", "sbp-tz", "sc", "sc-it", "sd", "sd-in", "sd-pk", "se", "seh", "seh-mz", "ses", "ses-ml", "se-fi", "se-no", "se-se", "sg", "sg-cf", "shi", "shi-ma", "si", "si-lk", "sk", "sk-sk", "sl", "sl-si", "smn", "smn-fi", "sms", "sms-fi", "sn", "sn-zw", "so", "so-dj", "so-et", "so-ke", "so-so", "sq", "sq-al", "sq-mk", "sq-xk", "sr", "sr-ba", "sr-cs", "sr-me", "sr-rs", "sr-xk", "su", "su-id", "sv", "sv-ax", "sv-fi", "sv-se", "sw", "sw-cd", "sw-ke", "sw-tz", "sw-ug", "sy", "ta", "ta-in", "ta-lk", "ta-my", "ta-sg", "te", "teo", "teo-ke", "teo-ug", "te-in", "tg", "tg-tj", "th", "th-th", "ti", "ti-er", "ti-et", "tk", "tk-tm", "tl", "to", "tok", "tok-001", "to-to", "tr", "tr-cy", "tr-tr", "tt", "tt-ru", "twq", "twq-ne", "tzm", "tzm-ma", "ug", "ug-cn", "uk", "uk-ua", "ur", "ur-in", "ur-pk", "uz", "uz-af", "uz-uz", "vai", "vai-lr", "vi", "vi-vn", "vo", "vo-001", "vun", "vun-tz", "wae", "wae-ch", "wo", "wo-sn", "xh", "xh-za", "xog", "xog-ug", "yav", "yav-cm", "yo", "yo-bj", "yo-ng", "yrl", "yrl-br", "yrl-co", "yrl-ve", "yue", "yue-cn", "yue-hk", "zgh", "zgh-ma", "zh", "zh-cn", "zh-hans", "zh-hant", "zh-hk", "zh-mo", "zh-sg", "zh-tw", "zu", "zu-za"]}, "businessUnitId": {"type": "integer", "format": "int64"}, "content": {"type": "object", "properties": {"smartFields": {"type": "object", "additionalProperties": {"type": "object", "properties": {}, "description": "An email field whose value is controlled by one or more smart rules."}}, "themeSettingsValues": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "flexAreas": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "widgets": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "plainTextVersion": {"type": "string"}, "templatePath": {"type": "string"}, "widgetContainers": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "styleSettings": {"type": "object", "properties": {"backgroundColor": {"type": "string"}, "backgroundImage": {"type": "string"}, "backgroundImageType": {"type": "string"}, "bodyColor": {"type": "string"}, "bodyBorderColor": {"type": "string"}, "bodyBorderWidth": {"type": "number"}, "bodyBorderColorChoice": {"type": "string"}, "primaryFont": {"type": "string"}, "primaryFontColor": {"type": "string"}, "primaryAccentColor": {"type": "string"}, "primaryFontSize": {"type": "number"}, "primaryFontLineHeight": {"type": "string"}, "secondaryFont": {"type": "string"}, "secondaryFontColor": {"type": "string"}, "secondaryAccentColor": {"type": "string"}, "secondaryFontSize": {"type": "number"}, "secondaryFontLineHeight": {"type": "string"}, "headingOneFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "headingTwoFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "linksFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "colorPickerFavorite1": {"type": "string"}, "colorPickerFavorite2": {"type": "string"}, "colorPickerFavorite3": {"type": "string"}, "colorPickerFavorite4": {"type": "string"}, "colorPickerFavorite5": {"type": "string"}, "colorPickerFavorite6": {"type": "string"}, "emailBodyPadding": {"type": "string"}, "emailBodyWidth": {"type": "string"}, "buttonStyleSettings": {"type": "object", "properties": {"backgroundColor": {"type": "object", "properties": {}}, "cornerRadius": {"type": "integer", "format": "int32"}, "fontStyle": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}}}, "dividerStyleSettings": {"type": "object", "properties": {"height": {"type": "integer", "format": "int32"}, "color": {"type": "object", "properties": {}}, "lineType": {"type": "string"}}}}}}, "description": "Data structure representing the content of the email."}, "webversion": {"type": "object", "properties": {"domain": {"type": "string"}, "redirectToPageId": {"type": "string"}, "isPageRedirected": {"type": "boolean"}, "redirectToUrl": {"type": "string"}, "title": {"type": "string"}, "metaDescription": {"type": "string"}, "pageExpiryEnabled": {"type": "boolean"}, "enabled": {"type": "boolean"}, "slug": {"type": "string"}, "url": {"type": "string"}, "expiresAt": {"type": "string", "format": "date-time"}}}, "archived": {"type": "boolean", "description": "Determines if the email is archived or not."}, "subscriptionDetails": {"type": "object", "properties": {"officeLocationId": {"type": "string", "description": "ID of the selected office location."}, "subscriptionName": {"type": "string"}, "preferencesGroupId": {"type": "string"}, "subscriptionId": {"type": "string", "description": "ID of the subscription."}}, "description": "Data structure representing the subscription fields of the email."}, "activeDomain": {"type": "string", "description": "The active domain of the email."}, "name": {"type": "string", "description": "The name of the email, as displayed on the email dashboard."}, "campaign": {"type": "string", "description": "The ID of the campaign this email is associated to."}, "from": {"type": "object", "properties": {"customReplyTo": {"type": "string", "description": "The reply to recipients will see."}, "fromName": {"type": "string", "description": "The name recipients will see."}, "replyTo": {"type": "string", "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see."}}, "description": "Data structure representing the from fields on the email."}, "jitterSendTime": {"type": "boolean"}, "state": {"type": "string", "description": "The email state.", "enum": ["AUTOMATED", "AUTOMATED_DRAFT", "AUTOMATED_SENDING", "AUTOMATED_FOR_FORM", "AUTOMATED_FOR_FORM_BUFFER", "AUTOMATED_FOR_FORM_DRAFT", "AUTOMATED_FOR_FORM_LEGACY", "BLOG_EMAIL_DRAFT", "BLOG_EMAIL_PUBLISHED", "DRAFT", "DRAFT_AB", "DRAFT_AB_VARIANT", "ERROR", "LOSER_AB_VARIANT", "PAGE_STUB", "PRE_PROCESSING", "PROCESSING", "PUBLISHED", "PUBLISHED_AB", "PUBLISHED_AB_VARIANT", "PUBLISHED_OR_SCHEDULED", "RSS_TO_EMAIL_DRAFT", "RSS_TO_EMAIL_PUBLISHED", "SCHEDULED", "SCHEDULED_AB", "SCHEDULED_OR_PUBLISHED", "AUTOMATED_AB", "AUTOMATED_AB_VARIANT", "AUTOMATED_DRAFT_AB", "AUTOMATED_DRAFT_ABVARIANT", "AUTOMATED_LOSER_ABVARIANT", "AGENT_GENERATED"]}, "to": {"type": "object", "properties": {"contactIlsLists": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}, "limitSendFrequency": {"type": "boolean"}, "suppressGraymail": {"type": "boolean"}, "contactIds": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}, "contactLists": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}}, "description": "Data structure representing the to fields of the email."}, "subcategory": {"type": "string", "description": "The email subcategory.", "enum": ["ab_master", "ab_variant", "ab_loser_variant", "page_stub", "landing_page", "site_page", "legacy_page", "ab_master_site_page", "ab_variant_site_page", "ab_loser_variant_site_page", "performable_landing_page", "performable_landing_page_cutover", "staged_page", "automated", "automated_for_deal", "automated_for_form", "automated_for_form_legacy", "automated_for_form_buffer", "automated_for_form_draft", "rss_to_email", "rss_to_email_child", "blog_email", "blog_email_child", "optin_email", "optin_followup_email", "batch", "resubscribe_email", "unsubscribe_confirmation_email", "resubscribe_confirmation_email", "single_send_api", "marketing_single_send_api", "smtp_token", "localtime", "automated_for_ticket", "automated_for_leadflow", "automated_for_feedback_ces", "automated_for_feedback_nps", "automated_for_feedback_custom", "membership_registration", "membership_password_saved", "membership_password_reset", "membership_otp_login", "membership_passwordless_auth", "membership_email_verification", "membership_registration_follow_up", "membership_verification", "membership_follow_up", "ticket_closed_kickback_email", "ticket_opened_kickback_email", "automated_for_custom_survey", "discardable_stub", "normal_blog_post", "legacy_blog_post", "imported_blog_post", "automated_ab_master", "automated_ab_variant", "web_interactive", "portal_content", "page_instance_layout", "kb_article_instance_layout", "kb_listing", "kb_search_results", "kb_support_form", "kb_404_page", "case_study", "case_study_listing", "case_study_instance_layout", "scp_static_page", "scp_instance_layout_page", "podcast_instance_layout", "podcast_listing", "blog_article_instance_layout", "blog_article_listing", "blog_author_detail", "UNKNOWN"]}, "sendOnPublish": {"type": "boolean", "description": "Determines whether the email will be sent immediately on publish."}}, "description": "Properties of a marketing email you can update via the API.", "example": {"activeDomain": "test.hs-sites.com", "archived": false, "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", "content": {"flexAreas": {"main": {"boxed": false, "isSingleColumnFullWidth": false, "sections": [{"columns": [{"id": "column_1606761806181_0", "widgets": ["module_160676180617911"], "width": 12}], "id": "section_1606761806181", "style": {"backgroundColor": "", "backgroundType": "CONTENT"}}, {"columns": [{"id": "column-0-1", "widgets": ["module-0-1-1"], "width": 12}], "id": "section-0", "style": {"backgroundType": "CONTENT", "paddingBottom": "40px", "paddingTop": "40px"}}, {"columns": [{"id": "column-1-1", "widgets": ["module-1-1-1"], "width": 12}], "id": "section-1", "style": {"backgroundColor": "", "backgroundType": "CONTENT", "paddingBottom": "0px", "paddingTop": "0px"}}]}}, "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", "styleSettings": {}, "widgets": {"module-0-1-1": {"body": {"css_class": "dnd-module", "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", "i18nKey": "richText.plainText", "path": "@hubspot/rich_text", "schema_version": 2}, "child_css": {}, "css": {}, "id": "module-0-1-1", "module_id": 1155639, "name": "module-0-1-1", "order": 2, "styles": {}, "type": "module"}, "module-1-1-1": {"body": {"align": "center", "css_class": "dnd-module", "font": {"color": "#23496d", "font": "Arial, sans-serif", "size": {"units": "px", "value": 12}}, "link_font": {"color": "#00a4bd", "font": "Helvetica,Arial,sans-serif", "size": {"units": "px", "value": 12}, "styles": {"bold": false, "italic": false, "underline": true}}, "path": "@hubspot/email_footer", "schema_version": 2, "unsubscribe_link_type": "both"}, "child_css": {}, "css": {}, "id": "module-1-1-1", "module_id": 2869621, "name": "module-1-1-1", "order": 3, "styles": {}, "type": "module"}, "module_160676180617911": {"body": {"font": {"color": "#00a4bd", "font": "Arial, sans-serif", "size": {"units": "px", "value": 12}, "styles": {"bold": false, "italic": false, "underline": true}}, "hs_enable_module_padding": false, "hs_wrapper_css": {}}, "child_css": {}, "css": {}, "id": "module_160676180617911", "module_id": 2794854, "name": "module_160676180617911", "styles": {}, "type": "module"}, "preview_text": {"body": {"value": ""}, "child_css": {}, "css": {}, "id": "preview_text", "label": "Preview Text This will be used as the preview text that displays in some email clients", "name": "preview_text", "order": 0, "styles": {}, "type": "text"}}}, "createdAt": "2020-11-30T18:43:17.136Z", "createdById": 3739732, "from": {"fromName": "Bruce Wayne", "replyTo": "test@hubspot.com"}, "name": "My subject", "publishDate": "2023-11-30T18:44:20.387Z", "sendOnPublish": true, "state": "DRAFT", "subcategory": "batch", "subject": "My subject", "subscriptionDetails": {"officeLocationId": "5449392956"}, "to": {"contactIds": {}, "contactIlsLists": {"exclude": [1], "include": [5]}, "suppressGraymail": true}, "webversion": {"expiresAt": "2020-11-30T18:44:20.387Z", "metaDescription": "", "redirectToPageId": 0, "redirectToUrl": "http://www.example.org"}}}', + "CREATEMARKETINGEMAIL": '{"required": ["name"], "type": "object", "properties": {"feedbackSurveyId": {"type": "string", "description": "The ID of the feedback survey linked to the email."}, "rssData": {"type": "object", "properties": {"blogImageMaxWidth": {"type": "integer", "format": "int32"}, "blogEmailType": {"type": "string"}, "hubspotBlogId": {"type": "string"}, "rssEntryTemplate": {"type": "string"}, "timing": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "maxEntries": {"type": "integer", "format": "int32"}, "useHeadlineAsSubject": {"type": "boolean"}, "blogLayout": {"type": "string"}, "url": {"type": "string"}}, "description": "RSS related data if it is a blog or rss email."}, "subject": {"type": "string", "description": "The subject of the email."}, "testing": {"type": "object", "properties": {"isAbVariation": {"type": "boolean"}, "abSamplingDefault": {"type": "string", "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abSampleSizeDefault": {"type": "string", "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abStatus": {"type": "string", "description": "Status of the AB test.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abTestPercentage": {"type": "integer", "description": "The size of your test group.", "format": "int32"}, "hoursToWait": {"type": "integer", "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", "format": "int32"}, "testId": {"type": "string", "description": "The ID of the AB test."}, "abSuccessMetric": {"type": "string", "description": "Metric to determine the version that will be sent to the remaining contacts.", "enum": ["CLICKS_BY_OPENS", "CLICKS_BY_DELIVERED", "OPENS_BY_DELIVERED"]}}, "description": "AB testing related data. This property is only returned for AB type emails."}, "publishDate": {"type": "string", "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", "format": "date-time"}, "language": {"type": "string", "enum": ["af", "af-na", "af-za", "agq", "agq-cm", "ak", "ak-gh", "am", "am-et", "ann", "ann-ng", "ar", "ar-001", "ar-ae", "ar-bh", "ar-dj", "ar-dz", "ar-eg", "ar-eh", "ar-er", "ar-il", "ar-iq", "ar-jo", "ar-km", "ar-kw", "ar-lb", "ar-ly", "ar-ma", "ar-mr", "ar-om", "ar-ps", "ar-qa", "ar-sa", "ar-sd", "ar-so", "ar-ss", "ar-sy", "ar-td", "ar-tn", "ar-ye", "as", "asa", "asa-tz", "ast", "ast-es", "as-in", "az", "az-az", "bas", "bas-cm", "be", "bem", "bem-zm", "bez", "bez-tz", "be-by", "bg", "bgc", "bgc-in", "bg-bg", "bho", "bho-in", "bm", "bm-ml", "bn", "bn-bd", "bn-in", "bo", "bo-cn", "bo-in", "br", "brx", "brx-in", "br-fr", "bs", "bs-ba", "ca", "ca-ad", "ca-es", "ca-fr", "ca-it", "ccp", "ccp-bd", "ccp-in", "ce", "ceb", "ceb-ph", "ce-ru", "cgg", "cgg-ug", "chr", "chr-us", "ckb", "ckb-iq", "ckb-ir", "cs", "cs-cz", "cu", "cu-ru", "cv", "cv-ru", "cy", "cy-gb", "da", "dav", "dav-ke", "da-dk", "da-gl", "de", "de-at", "de-be", "de-ch", "de-de", "de-gr", "de-it", "de-li", "de-lu", "dje", "dje-ne", "doi", "doi-in", "dsb", "dsb-de", "dua", "dua-cm", "dyo", "dyo-sn", "dz", "dz-bt", "ebu", "ebu-ke", "ee", "ee-gh", "ee-tg", "el", "el-cy", "el-gr", "en", "en-001", "en-150", "en-ae", "en-ag", "en-ai", "en-as", "en-at", "en-au", "en-bb", "en-be", "en-bi", "en-bm", "en-bs", "en-bw", "en-bz", "en-ca", "en-cc", "en-ch", "en-ck", "en-cm", "en-cn", "en-cx", "en-cy", "en-de", "en-dg", "en-dk", "en-dm", "en-ee", "en-eg", "en-er", "en-es", "en-fi", "en-fj", "en-fk", "en-fm", "en-fr", "en-gb", "en-gd", "en-gg", "en-gh", "en-gi", "en-gm", "en-gu", "en-gy", "en-hk", "en-ie", "en-il", "en-im", "en-in", "en-io", "en-je", "en-jm", "en-ke", "en-ki", "en-kn", "en-ky", "en-lc", "en-lr", "en-ls", "en-lu", "en-mg", "en-mh", "en-mo", "en-mp", "en-ms", "en-mt", "en-mu", "en-mv", "en-mw", "en-mx", "en-my", "en-na", "en-nf", "en-ng", "en-nl", "en-nr", "en-nu", "en-nz", "en-pg", "en-ph", "en-pk", "en-pn", "en-pr", "en-pw", "en-rw", "en-sb", "en-sc", "en-sd", "en-se", "en-sg", "en-sh", "en-si", "en-sl", "en-ss", "en-sx", "en-sz", "en-tc", "en-tk", "en-tn", "en-to", "en-tt", "en-tv", "en-tz", "en-ug", "en-um", "en-us", "en-vc", "en-vg", "en-vi", "en-vu", "en-ws", "en-za", "en-zm", "en-zw", "eo", "eo-001", "es", "es-419", "es-ar", "es-bo", "es-br", "es-bz", "es-cl", "es-co", "es-cr", "es-cu", "es-do", "es-ea", "es-ec", "es-es", "es-gq", "es-gt", "es-hn", "es-ic", "es-mx", "es-ni", "es-pa", "es-pe", "es-ph", "es-pr", "es-py", "es-sv", "es-us", "es-uy", "es-ve", "et", "et-ee", "eu", "eu-es", "ewo", "ewo-cm", "fa", "fa-af", "fa-ir", "ff", "ff-bf", "ff-cm", "ff-gh", "ff-gm", "ff-gn", "ff-gw", "ff-lr", "ff-mr", "ff-ne", "ff-ng", "ff-sl", "ff-sn", "fi", "fil", "fil-ph", "fi-fi", "fo", "fo-dk", "fo-fo", "fr", "frr", "frr-de", "fr-be", "fr-bf", "fr-bi", "fr-bj", "fr-bl", "fr-ca", "fr-cd", "fr-cf", "fr-cg", "fr-ch", "fr-ci", "fr-cm", "fr-dj", "fr-dz", "fr-fr", "fr-ga", "fr-gf", "fr-gn", "fr-gp", "fr-gq", "fr-ht", "fr-km", "fr-lu", "fr-ma", "fr-mc", "fr-mf", "fr-mg", "fr-ml", "fr-mq", "fr-mr", "fr-mu", "fr-nc", "fr-ne", "fr-pf", "fr-pm", "fr-re", "fr-rw", "fr-sc", "fr-sn", "fr-sy", "fr-td", "fr-tg", "fr-tn", "fr-vu", "fr-wf", "fr-yt", "fur", "fur-it", "fy", "fy-nl", "ga", "ga-gb", "ga-ie", "gd", "gd-gb", "gl", "gl-es", "gsw", "gsw-ch", "gsw-fr", "gsw-li", "gu", "guz", "guz-ke", "gu-in", "gv", "gv-im", "ha", "haw", "haw-us", "ha-gh", "ha-ne", "ha-ng", "he", "he-il", "hi", "hi-in", "hr", "hr-ba", "hr-hr", "hsb", "hsb-de", "hu", "hu-hu", "hy", "hy-am", "ia", "ia-001", "id", "ig", "ig-ng", "ii", "ii-cn", "id-id", "is", "is-is", "it", "it-ch", "it-it", "it-sm", "it-va", "ja", "ja-jp", "jgo", "jgo-cm", "yi", "yi-001", "jmc", "jmc-tz", "jv", "jv-id", "ka", "kab", "kab-dz", "kam", "kam-ke", "ka-ge", "kde", "kde-tz", "kea", "kea-cv", "kgp", "kgp-br", "khq", "khq-ml", "ki", "ki-ke", "kk", "kkj", "kkj-cm", "kk-kz", "kl", "kln", "kln-ke", "kl-gl", "km", "km-kh", "kn", "kn-in", "ko", "kok", "kok-in", "ko-kp", "ko-kr", "ks", "ksb", "ksb-tz", "ksf", "ksf-cm", "ksh", "ksh-de", "ks-in", "ku", "ku-tr", "kw", "kw-gb", "ky", "ky-kg", "lag", "lag-tz", "lb", "lb-lu", "lg", "lg-ug", "lkt", "lkt-us", "ln", "ln-ao", "ln-cd", "ln-cf", "ln-cg", "lo", "lo-la", "lrc", "lrc-iq", "lrc-ir", "lt", "lt-lt", "lu", "luo", "luo-ke", "luy", "luy-ke", "lu-cd", "lv", "lv-lv", "mai", "mai-in", "mas", "mas-ke", "mas-tz", "mdf", "mdf-ru", "mer", "mer-ke", "mfe", "mfe-mu", "mg", "mgh", "mgh-mz", "mgo", "mgo-cm", "mg-mg", "mi", "mi-nz", "mk", "mk-mk", "ml", "ml-in", "mn", "mni", "mni-in", "mn-mn", "mr", "mr-in", "ms", "ms-bn", "ms-id", "ms-my", "ms-sg", "mt", "mt-mt", "mua", "mua-cm", "my", "my-mm", "mzn", "mzn-ir", "naq", "naq-na", "nb", "nb-no", "nb-sj", "nd", "nds", "nds-de", "nds-nl", "nd-zw", "ne", "ne-in", "ne-np", "nl", "nl-aw", "nl-be", "nl-bq", "nl-ch", "nl-cw", "nl-lu", "nl-nl", "nl-sr", "nl-sx", "nmg", "nmg-cm", "nn", "nnh", "nnh-cm", "nn-no", "no", "no-no", "nus", "nus-ss", "nyn", "nyn-ug", "oc", "oc-es", "oc-fr", "om", "om-et", "om-ke", "or", "or-in", "os", "os-ge", "os-ru", "pa", "pa-in", "pa-pk", "pcm", "pcm-ng", "pis", "pis-sb", "pl", "pl-pl", "prg", "prg-001", "ps", "ps-af", "ps-pk", "pt", "pt-ao", "pt-br", "pt-ch", "pt-cv", "pt-gq", "pt-gw", "pt-lu", "pt-mo", "pt-mz", "pt-pt", "pt-st", "pt-tl", "qu", "qu-bo", "qu-ec", "qu-pe", "raj", "raj-in", "rm", "rm-ch", "rn", "rn-bi", "ro", "rof", "rof-tz", "ro-md", "ro-ro", "ru", "ru-by", "ru-kg", "ru-kz", "ru-md", "ru-ru", "ru-ua", "rw", "rwk", "rwk-tz", "rw-rw", "sa", "sah", "sah-ru", "saq", "saq-ke", "sat", "sat-in", "sa-in", "sbp", "sbp-tz", "sc", "sc-it", "sd", "sd-in", "sd-pk", "se", "seh", "seh-mz", "ses", "ses-ml", "se-fi", "se-no", "se-se", "sg", "sg-cf", "shi", "shi-ma", "si", "si-lk", "sk", "sk-sk", "sl", "sl-si", "smn", "smn-fi", "sms", "sms-fi", "sn", "sn-zw", "so", "so-dj", "so-et", "so-ke", "so-so", "sq", "sq-al", "sq-mk", "sq-xk", "sr", "sr-ba", "sr-cs", "sr-me", "sr-rs", "sr-xk", "su", "su-id", "sv", "sv-ax", "sv-fi", "sv-se", "sw", "sw-cd", "sw-ke", "sw-tz", "sw-ug", "sy", "ta", "ta-in", "ta-lk", "ta-my", "ta-sg", "te", "teo", "teo-ke", "teo-ug", "te-in", "tg", "tg-tj", "th", "th-th", "ti", "ti-er", "ti-et", "tk", "tk-tm", "tl", "to", "tok", "tok-001", "to-to", "tr", "tr-cy", "tr-tr", "tt", "tt-ru", "twq", "twq-ne", "tzm", "tzm-ma", "ug", "ug-cn", "uk", "uk-ua", "ur", "ur-in", "ur-pk", "uz", "uz-af", "uz-uz", "vai", "vai-lr", "vi", "vi-vn", "vo", "vo-001", "vun", "vun-tz", "wae", "wae-ch", "wo", "wo-sn", "xh", "xh-za", "xog", "xog-ug", "yav", "yav-cm", "yo", "yo-bj", "yo-ng", "yrl", "yrl-br", "yrl-co", "yrl-ve", "yue", "yue-cn", "yue-hk", "zgh", "zgh-ma", "zh", "zh-cn", "zh-hans", "zh-hant", "zh-hk", "zh-mo", "zh-sg", "zh-tw", "zu", "zu-za"]}, "businessUnitId": {"type": "integer", "format": "int64"}, "content": {"type": "object", "properties": {"smartFields": {"type": "object", "additionalProperties": {"type": "object", "properties": {}, "description": "An email field whose value is controlled by one or more smart rules."}}, "themeSettingsValues": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "flexAreas": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "widgets": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "plainTextVersion": {"type": "string"}, "templatePath": {"type": "string"}, "widgetContainers": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "styleSettings": {"type": "object", "properties": {"backgroundColor": {"type": "string"}, "backgroundImage": {"type": "string"}, "backgroundImageType": {"type": "string"}, "bodyColor": {"type": "string"}, "bodyBorderColor": {"type": "string"}, "bodyBorderWidth": {"type": "number"}, "bodyBorderColorChoice": {"type": "string"}, "primaryFont": {"type": "string"}, "primaryFontColor": {"type": "string"}, "primaryAccentColor": {"type": "string"}, "primaryFontSize": {"type": "number"}, "primaryFontLineHeight": {"type": "string"}, "secondaryFont": {"type": "string"}, "secondaryFontColor": {"type": "string"}, "secondaryAccentColor": {"type": "string"}, "secondaryFontSize": {"type": "number"}, "secondaryFontLineHeight": {"type": "string"}, "headingOneFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "headingTwoFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "linksFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "colorPickerFavorite1": {"type": "string"}, "colorPickerFavorite2": {"type": "string"}, "colorPickerFavorite3": {"type": "string"}, "colorPickerFavorite4": {"type": "string"}, "colorPickerFavorite5": {"type": "string"}, "colorPickerFavorite6": {"type": "string"}, "emailBodyPadding": {"type": "string"}, "emailBodyWidth": {"type": "string"}, "buttonStyleSettings": {"type": "object", "properties": {"backgroundColor": {"type": "object", "properties": {}}, "cornerRadius": {"type": "integer", "format": "int32"}, "fontStyle": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}}}, "dividerStyleSettings": {"type": "object", "properties": {"height": {"type": "integer", "format": "int32"}, "color": {"type": "object", "properties": {}}, "lineType": {"type": "string"}}}}}}, "description": "Data structure representing the content of the email."}, "webversion": {"type": "object", "properties": {"domain": {"type": "string"}, "redirectToPageId": {"type": "string"}, "isPageRedirected": {"type": "boolean"}, "redirectToUrl": {"type": "string"}, "title": {"type": "string"}, "metaDescription": {"type": "string"}, "pageExpiryEnabled": {"type": "boolean"}, "enabled": {"type": "boolean"}, "slug": {"type": "string"}, "url": {"type": "string"}, "expiresAt": {"type": "string", "format": "date-time"}}}, "archived": {"type": "boolean", "description": "Determines if the email is archived or not."}, "subscriptionDetails": {"type": "object", "properties": {"officeLocationId": {"type": "string", "description": "ID of the selected office location."}, "subscriptionName": {"type": "string"}, "preferencesGroupId": {"type": "string"}, "subscriptionId": {"type": "string", "description": "ID of the subscription."}}, "description": "Data structure representing the subscription fields of the email."}, "activeDomain": {"type": "string", "description": "The active domain of the email."}, "name": {"type": "string", "description": "The name of the email, as displayed on the email dashboard."}, "campaign": {"type": "string", "description": "The ID of the campaign this email is associated to."}, "from": {"type": "object", "properties": {"customReplyTo": {"type": "string", "description": "The reply to recipients will see."}, "fromName": {"type": "string", "description": "The name recipients will see."}, "replyTo": {"type": "string", "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see."}}, "description": "Data structure representing the from fields on the email."}, "jitterSendTime": {"type": "boolean"}, "state": {"type": "string", "description": "The email state.", "enum": ["AUTOMATED", "AUTOMATED_DRAFT", "AUTOMATED_SENDING", "AUTOMATED_FOR_FORM", "AUTOMATED_FOR_FORM_BUFFER", "AUTOMATED_FOR_FORM_DRAFT", "AUTOMATED_FOR_FORM_LEGACY", "BLOG_EMAIL_DRAFT", "BLOG_EMAIL_PUBLISHED", "DRAFT", "DRAFT_AB", "DRAFT_AB_VARIANT", "ERROR", "LOSER_AB_VARIANT", "PAGE_STUB", "PRE_PROCESSING", "PROCESSING", "PUBLISHED", "PUBLISHED_AB", "PUBLISHED_AB_VARIANT", "PUBLISHED_OR_SCHEDULED", "RSS_TO_EMAIL_DRAFT", "RSS_TO_EMAIL_PUBLISHED", "SCHEDULED", "SCHEDULED_AB", "SCHEDULED_OR_PUBLISHED", "AUTOMATED_AB", "AUTOMATED_AB_VARIANT", "AUTOMATED_DRAFT_AB", "AUTOMATED_DRAFT_ABVARIANT", "AUTOMATED_LOSER_ABVARIANT", "AGENT_GENERATED"]}, "to": {"type": "object", "properties": {"contactIlsLists": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}, "limitSendFrequency": {"type": "boolean"}, "suppressGraymail": {"type": "boolean"}, "contactIds": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}, "contactLists": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}}, "description": "Data structure representing the to fields of the email."}, "subcategory": {"type": "string", "description": "The email subcategory.", "enum": ["ab_master", "ab_variant", "ab_loser_variant", "page_stub", "landing_page", "site_page", "legacy_page", "ab_master_site_page", "ab_variant_site_page", "ab_loser_variant_site_page", "performable_landing_page", "performable_landing_page_cutover", "staged_page", "automated", "automated_for_deal", "automated_for_form", "automated_for_form_legacy", "automated_for_form_buffer", "automated_for_form_draft", "rss_to_email", "rss_to_email_child", "blog_email", "blog_email_child", "optin_email", "optin_followup_email", "batch", "resubscribe_email", "unsubscribe_confirmation_email", "resubscribe_confirmation_email", "single_send_api", "marketing_single_send_api", "smtp_token", "localtime", "automated_for_ticket", "automated_for_leadflow", "automated_for_feedback_ces", "automated_for_feedback_nps", "automated_for_feedback_custom", "membership_registration", "membership_password_saved", "membership_password_reset", "membership_otp_login", "membership_passwordless_auth", "membership_email_verification", "membership_registration_follow_up", "membership_verification", "membership_follow_up", "ticket_closed_kickback_email", "ticket_opened_kickback_email", "automated_for_custom_survey", "discardable_stub", "normal_blog_post", "legacy_blog_post", "imported_blog_post", "automated_ab_master", "automated_ab_variant", "web_interactive", "portal_content", "page_instance_layout", "kb_article_instance_layout", "kb_listing", "kb_search_results", "kb_support_form", "kb_404_page", "case_study", "case_study_listing", "case_study_instance_layout", "scp_static_page", "scp_instance_layout_page", "podcast_instance_layout", "podcast_listing", "blog_article_instance_layout", "blog_article_listing", "blog_author_detail", "UNKNOWN"]}, "sendOnPublish": {"type": "boolean", "description": "Determines whether the email will be sent immediately on publish."}}, "description": "Properties of a marketing email you can set when creating a marketing email.", "example": {"activeDomain": "test.hs-sites.com", "archived": false, "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", "content": {"flexAreas": {"main": {"boxed": false, "isSingleColumnFullWidth": false, "sections": [{"columns": [{"id": "column_1606761806181_0", "widgets": ["module_160676180617911"], "width": 12}], "id": "section_1606761806181", "style": {"backgroundColor": "", "backgroundType": "CONTENT"}}, {"columns": [{"id": "column-0-1", "widgets": ["module-0-1-1"], "width": 12}], "id": "section-0", "style": {"backgroundType": "CONTENT", "paddingBottom": "40px", "paddingTop": "40px"}}, {"columns": [{"id": "column-1-1", "widgets": ["module-1-1-1"], "width": 12}], "id": "section-1", "style": {"backgroundColor": "", "backgroundType": "CONTENT", "paddingBottom": "0px", "paddingTop": "0px"}}]}}, "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", "styleSettings": {}, "widgets": {"module-0-1-1": {"body": {"css_class": "dnd-module", "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", "i18nKey": "richText.plainText", "path": "@hubspot/rich_text", "schema_version": 2}, "child_css": {}, "css": {}, "id": "module-0-1-1", "module_id": 1155639, "name": "module-0-1-1", "order": 2, "styles": {}, "type": "module"}, "module-1-1-1": {"body": {"align": "center", "css_class": "dnd-module", "font": {"color": "#23496d", "font": "Arial, sans-serif", "size": {"units": "px", "value": 12}}, "link_font": {"color": "#00a4bd", "font": "Helvetica,Arial,sans-serif", "size": {"units": "px", "value": 12}, "styles": {"bold": false, "italic": false, "underline": true}}, "path": "@hubspot/email_footer", "schema_version": 2, "unsubscribe_link_type": "both"}, "child_css": {}, "css": {}, "id": "module-1-1-1", "module_id": 2869621, "name": "module-1-1-1", "order": 3, "styles": {}, "type": "module"}, "module_160676180617911": {"body": {"font": {"color": "#00a4bd", "font": "Arial, sans-serif", "size": {"units": "px", "value": 12}, "styles": {"bold": false, "italic": false, "underline": true}}, "hs_enable_module_padding": false, "hs_wrapper_css": {}}, "child_css": {}, "css": {}, "id": "module_160676180617911", "module_id": 2794854, "name": "module_160676180617911", "styles": {}, "type": "module"}, "preview_text": {"body": {"value": ""}, "child_css": {}, "css": {}, "id": "preview_text", "label": "Preview Text This will be used as the preview text that displays in some email clients", "name": "preview_text", "order": 0, "styles": {}, "type": "text"}}}, "createdAt": "2020-11-30T18:43:17.136Z", "createdById": 3739732, "from": {"fromName": "Bruce Wayne", "replyTo": "test@hubspot.com"}, "name": "My subject", "publishDate": "2023-11-30T18:44:20.387Z", "sendOnPublish": true, "state": "DRAFT", "subcategory": "batch", "subject": "My subject", "subscriptionDetails": {"officeLocationId": "5449392956"}, "to": {"contactIds": {}, "contactIlsLists": {"exclude": [1], "include": [5]}, "suppressGraymail": true}, "webversion": {"expiresAt": "2020-11-30T18:44:20.387Z", "metaDescription": "", "redirectToPageId": 0, "redirectToUrl": "http://www.example.org"}}}', + "UPDATEMARKETINGEMAILPROPERTIES": '{"type": "object", "properties": {"rssData": {"type": "object", "properties": {"blogImageMaxWidth": {"type": "integer", "format": "int32"}, "blogEmailType": {"type": "string"}, "hubspotBlogId": {"type": "string"}, "rssEntryTemplate": {"type": "string"}, "timing": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "maxEntries": {"type": "integer", "format": "int32"}, "useHeadlineAsSubject": {"type": "boolean"}, "blogLayout": {"type": "string"}, "url": {"type": "string"}}, "description": "RSS related data if it is a blog or rss email."}, "subject": {"type": "string", "description": "The subject of the email."}, "testing": {"type": "object", "properties": {"isAbVariation": {"type": "boolean"}, "abSamplingDefault": {"type": "string", "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abSampleSizeDefault": {"type": "string", "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abStatus": {"type": "string", "description": "Status of the AB test.", "enum": ["master", "variant", "loser_variant", "mab_master", "mab_variant", "automated_master", "automated_variant", "automated_loser_variant"]}, "abTestPercentage": {"type": "integer", "description": "The size of your test group.", "format": "int32"}, "hoursToWait": {"type": "integer", "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.", "format": "int32"}, "testId": {"type": "string", "description": "The ID of the AB test."}, "abSuccessMetric": {"type": "string", "description": "Metric to determine the version that will be sent to the remaining contacts.", "enum": ["CLICKS_BY_OPENS", "CLICKS_BY_DELIVERED", "OPENS_BY_DELIVERED"]}}, "description": "AB testing related data. This property is only returned for AB type emails."}, "publishDate": {"type": "string", "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.", "format": "date-time"}, "language": {"type": "string", "enum": ["af", "af-na", "af-za", "agq", "agq-cm", "ak", "ak-gh", "am", "am-et", "ann", "ann-ng", "ar", "ar-001", "ar-ae", "ar-bh", "ar-dj", "ar-dz", "ar-eg", "ar-eh", "ar-er", "ar-il", "ar-iq", "ar-jo", "ar-km", "ar-kw", "ar-lb", "ar-ly", "ar-ma", "ar-mr", "ar-om", "ar-ps", "ar-qa", "ar-sa", "ar-sd", "ar-so", "ar-ss", "ar-sy", "ar-td", "ar-tn", "ar-ye", "as", "asa", "asa-tz", "ast", "ast-es", "as-in", "az", "az-az", "bas", "bas-cm", "be", "bem", "bem-zm", "bez", "bez-tz", "be-by", "bg", "bgc", "bgc-in", "bg-bg", "bho", "bho-in", "bm", "bm-ml", "bn", "bn-bd", "bn-in", "bo", "bo-cn", "bo-in", "br", "brx", "brx-in", "br-fr", "bs", "bs-ba", "ca", "ca-ad", "ca-es", "ca-fr", "ca-it", "ccp", "ccp-bd", "ccp-in", "ce", "ceb", "ceb-ph", "ce-ru", "cgg", "cgg-ug", "chr", "chr-us", "ckb", "ckb-iq", "ckb-ir", "cs", "cs-cz", "cu", "cu-ru", "cv", "cv-ru", "cy", "cy-gb", "da", "dav", "dav-ke", "da-dk", "da-gl", "de", "de-at", "de-be", "de-ch", "de-de", "de-gr", "de-it", "de-li", "de-lu", "dje", "dje-ne", "doi", "doi-in", "dsb", "dsb-de", "dua", "dua-cm", "dyo", "dyo-sn", "dz", "dz-bt", "ebu", "ebu-ke", "ee", "ee-gh", "ee-tg", "el", "el-cy", "el-gr", "en", "en-001", "en-150", "en-ae", "en-ag", "en-ai", "en-as", "en-at", "en-au", "en-bb", "en-be", "en-bi", "en-bm", "en-bs", "en-bw", "en-bz", "en-ca", "en-cc", "en-ch", "en-ck", "en-cm", "en-cn", "en-cx", "en-cy", "en-de", "en-dg", "en-dk", "en-dm", "en-ee", "en-eg", "en-er", "en-es", "en-fi", "en-fj", "en-fk", "en-fm", "en-fr", "en-gb", "en-gd", "en-gg", "en-gh", "en-gi", "en-gm", "en-gu", "en-gy", "en-hk", "en-ie", "en-il", "en-im", "en-in", "en-io", "en-je", "en-jm", "en-ke", "en-ki", "en-kn", "en-ky", "en-lc", "en-lr", "en-ls", "en-lu", "en-mg", "en-mh", "en-mo", "en-mp", "en-ms", "en-mt", "en-mu", "en-mv", "en-mw", "en-mx", "en-my", "en-na", "en-nf", "en-ng", "en-nl", "en-nr", "en-nu", "en-nz", "en-pg", "en-ph", "en-pk", "en-pn", "en-pr", "en-pw", "en-rw", "en-sb", "en-sc", "en-sd", "en-se", "en-sg", "en-sh", "en-si", "en-sl", "en-ss", "en-sx", "en-sz", "en-tc", "en-tk", "en-tn", "en-to", "en-tt", "en-tv", "en-tz", "en-ug", "en-um", "en-us", "en-vc", "en-vg", "en-vi", "en-vu", "en-ws", "en-za", "en-zm", "en-zw", "eo", "eo-001", "es", "es-419", "es-ar", "es-bo", "es-br", "es-bz", "es-cl", "es-co", "es-cr", "es-cu", "es-do", "es-ea", "es-ec", "es-es", "es-gq", "es-gt", "es-hn", "es-ic", "es-mx", "es-ni", "es-pa", "es-pe", "es-ph", "es-pr", "es-py", "es-sv", "es-us", "es-uy", "es-ve", "et", "et-ee", "eu", "eu-es", "ewo", "ewo-cm", "fa", "fa-af", "fa-ir", "ff", "ff-bf", "ff-cm", "ff-gh", "ff-gm", "ff-gn", "ff-gw", "ff-lr", "ff-mr", "ff-ne", "ff-ng", "ff-sl", "ff-sn", "fi", "fil", "fil-ph", "fi-fi", "fo", "fo-dk", "fo-fo", "fr", "frr", "frr-de", "fr-be", "fr-bf", "fr-bi", "fr-bj", "fr-bl", "fr-ca", "fr-cd", "fr-cf", "fr-cg", "fr-ch", "fr-ci", "fr-cm", "fr-dj", "fr-dz", "fr-fr", "fr-ga", "fr-gf", "fr-gn", "fr-gp", "fr-gq", "fr-ht", "fr-km", "fr-lu", "fr-ma", "fr-mc", "fr-mf", "fr-mg", "fr-ml", "fr-mq", "fr-mr", "fr-mu", "fr-nc", "fr-ne", "fr-pf", "fr-pm", "fr-re", "fr-rw", "fr-sc", "fr-sn", "fr-sy", "fr-td", "fr-tg", "fr-tn", "fr-vu", "fr-wf", "fr-yt", "fur", "fur-it", "fy", "fy-nl", "ga", "ga-gb", "ga-ie", "gd", "gd-gb", "gl", "gl-es", "gsw", "gsw-ch", "gsw-fr", "gsw-li", "gu", "guz", "guz-ke", "gu-in", "gv", "gv-im", "ha", "haw", "haw-us", "ha-gh", "ha-ne", "ha-ng", "he", "he-il", "hi", "hi-in", "hr", "hr-ba", "hr-hr", "hsb", "hsb-de", "hu", "hu-hu", "hy", "hy-am", "ia", "ia-001", "id", "ig", "ig-ng", "ii", "ii-cn", "id-id", "is", "is-is", "it", "it-ch", "it-it", "it-sm", "it-va", "ja", "ja-jp", "jgo", "jgo-cm", "yi", "yi-001", "jmc", "jmc-tz", "jv", "jv-id", "ka", "kab", "kab-dz", "kam", "kam-ke", "ka-ge", "kde", "kde-tz", "kea", "kea-cv", "kgp", "kgp-br", "khq", "khq-ml", "ki", "ki-ke", "kk", "kkj", "kkj-cm", "kk-kz", "kl", "kln", "kln-ke", "kl-gl", "km", "km-kh", "kn", "kn-in", "ko", "kok", "kok-in", "ko-kp", "ko-kr", "ks", "ksb", "ksb-tz", "ksf", "ksf-cm", "ksh", "ksh-de", "ks-in", "ku", "ku-tr", "kw", "kw-gb", "ky", "ky-kg", "lag", "lag-tz", "lb", "lb-lu", "lg", "lg-ug", "lkt", "lkt-us", "ln", "ln-ao", "ln-cd", "ln-cf", "ln-cg", "lo", "lo-la", "lrc", "lrc-iq", "lrc-ir", "lt", "lt-lt", "lu", "luo", "luo-ke", "luy", "luy-ke", "lu-cd", "lv", "lv-lv", "mai", "mai-in", "mas", "mas-ke", "mas-tz", "mdf", "mdf-ru", "mer", "mer-ke", "mfe", "mfe-mu", "mg", "mgh", "mgh-mz", "mgo", "mgo-cm", "mg-mg", "mi", "mi-nz", "mk", "mk-mk", "ml", "ml-in", "mn", "mni", "mni-in", "mn-mn", "mr", "mr-in", "ms", "ms-bn", "ms-id", "ms-my", "ms-sg", "mt", "mt-mt", "mua", "mua-cm", "my", "my-mm", "mzn", "mzn-ir", "naq", "naq-na", "nb", "nb-no", "nb-sj", "nd", "nds", "nds-de", "nds-nl", "nd-zw", "ne", "ne-in", "ne-np", "nl", "nl-aw", "nl-be", "nl-bq", "nl-ch", "nl-cw", "nl-lu", "nl-nl", "nl-sr", "nl-sx", "nmg", "nmg-cm", "nn", "nnh", "nnh-cm", "nn-no", "no", "no-no", "nus", "nus-ss", "nyn", "nyn-ug", "oc", "oc-es", "oc-fr", "om", "om-et", "om-ke", "or", "or-in", "os", "os-ge", "os-ru", "pa", "pa-in", "pa-pk", "pcm", "pcm-ng", "pis", "pis-sb", "pl", "pl-pl", "prg", "prg-001", "ps", "ps-af", "ps-pk", "pt", "pt-ao", "pt-br", "pt-ch", "pt-cv", "pt-gq", "pt-gw", "pt-lu", "pt-mo", "pt-mz", "pt-pt", "pt-st", "pt-tl", "qu", "qu-bo", "qu-ec", "qu-pe", "raj", "raj-in", "rm", "rm-ch", "rn", "rn-bi", "ro", "rof", "rof-tz", "ro-md", "ro-ro", "ru", "ru-by", "ru-kg", "ru-kz", "ru-md", "ru-ru", "ru-ua", "rw", "rwk", "rwk-tz", "rw-rw", "sa", "sah", "sah-ru", "saq", "saq-ke", "sat", "sat-in", "sa-in", "sbp", "sbp-tz", "sc", "sc-it", "sd", "sd-in", "sd-pk", "se", "seh", "seh-mz", "ses", "ses-ml", "se-fi", "se-no", "se-se", "sg", "sg-cf", "shi", "shi-ma", "si", "si-lk", "sk", "sk-sk", "sl", "sl-si", "smn", "smn-fi", "sms", "sms-fi", "sn", "sn-zw", "so", "so-dj", "so-et", "so-ke", "so-so", "sq", "sq-al", "sq-mk", "sq-xk", "sr", "sr-ba", "sr-cs", "sr-me", "sr-rs", "sr-xk", "su", "su-id", "sv", "sv-ax", "sv-fi", "sv-se", "sw", "sw-cd", "sw-ke", "sw-tz", "sw-ug", "sy", "ta", "ta-in", "ta-lk", "ta-my", "ta-sg", "te", "teo", "teo-ke", "teo-ug", "te-in", "tg", "tg-tj", "th", "th-th", "ti", "ti-er", "ti-et", "tk", "tk-tm", "tl", "to", "tok", "tok-001", "to-to", "tr", "tr-cy", "tr-tr", "tt", "tt-ru", "twq", "twq-ne", "tzm", "tzm-ma", "ug", "ug-cn", "uk", "uk-ua", "ur", "ur-in", "ur-pk", "uz", "uz-af", "uz-uz", "vai", "vai-lr", "vi", "vi-vn", "vo", "vo-001", "vun", "vun-tz", "wae", "wae-ch", "wo", "wo-sn", "xh", "xh-za", "xog", "xog-ug", "yav", "yav-cm", "yo", "yo-bj", "yo-ng", "yrl", "yrl-br", "yrl-co", "yrl-ve", "yue", "yue-cn", "yue-hk", "zgh", "zgh-ma", "zh", "zh-cn", "zh-hans", "zh-hant", "zh-hk", "zh-mo", "zh-sg", "zh-tw", "zu", "zu-za"]}, "businessUnitId": {"type": "integer", "format": "int64"}, "content": {"type": "object", "properties": {"smartFields": {"type": "object", "additionalProperties": {"type": "object", "properties": {}, "description": "An email field whose value is controlled by one or more smart rules."}}, "themeSettingsValues": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "flexAreas": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "widgets": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "plainTextVersion": {"type": "string"}, "templatePath": {"type": "string"}, "widgetContainers": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}}, "styleSettings": {"type": "object", "properties": {"backgroundColor": {"type": "string"}, "backgroundImage": {"type": "string"}, "backgroundImageType": {"type": "string"}, "bodyColor": {"type": "string"}, "bodyBorderColor": {"type": "string"}, "bodyBorderWidth": {"type": "number"}, "bodyBorderColorChoice": {"type": "string"}, "primaryFont": {"type": "string"}, "primaryFontColor": {"type": "string"}, "primaryAccentColor": {"type": "string"}, "primaryFontSize": {"type": "number"}, "primaryFontLineHeight": {"type": "string"}, "secondaryFont": {"type": "string"}, "secondaryFontColor": {"type": "string"}, "secondaryAccentColor": {"type": "string"}, "secondaryFontSize": {"type": "number"}, "secondaryFontLineHeight": {"type": "string"}, "headingOneFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "headingTwoFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "linksFont": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}, "colorPickerFavorite1": {"type": "string"}, "colorPickerFavorite2": {"type": "string"}, "colorPickerFavorite3": {"type": "string"}, "colorPickerFavorite4": {"type": "string"}, "colorPickerFavorite5": {"type": "string"}, "colorPickerFavorite6": {"type": "string"}, "emailBodyPadding": {"type": "string"}, "emailBodyWidth": {"type": "string"}, "buttonStyleSettings": {"type": "object", "properties": {"backgroundColor": {"type": "object", "properties": {}}, "cornerRadius": {"type": "integer", "format": "int32"}, "fontStyle": {"type": "object", "properties": {"font": {"type": "string"}, "size": {"type": "integer", "format": "int32"}, "color": {"type": "string"}, "underline": {"type": "boolean"}, "bold": {"type": "boolean"}, "italic": {"type": "boolean"}}}}}, "dividerStyleSettings": {"type": "object", "properties": {"height": {"type": "integer", "format": "int32"}, "color": {"type": "object", "properties": {}}, "lineType": {"type": "string"}}}}}}, "description": "Data structure representing the content of the email."}, "webversion": {"type": "object", "properties": {"domain": {"type": "string"}, "redirectToPageId": {"type": "string"}, "isPageRedirected": {"type": "boolean"}, "redirectToUrl": {"type": "string"}, "title": {"type": "string"}, "metaDescription": {"type": "string"}, "pageExpiryEnabled": {"type": "boolean"}, "enabled": {"type": "boolean"}, "slug": {"type": "string"}, "url": {"type": "string"}, "expiresAt": {"type": "string", "format": "date-time"}}}, "archived": {"type": "boolean", "description": "Determines if the email is archived or not."}, "subscriptionDetails": {"type": "object", "properties": {"officeLocationId": {"type": "string", "description": "ID of the selected office location."}, "subscriptionName": {"type": "string"}, "preferencesGroupId": {"type": "string"}, "subscriptionId": {"type": "string", "description": "ID of the subscription."}}, "description": "Data structure representing the subscription fields of the email."}, "activeDomain": {"type": "string", "description": "The active domain of the email."}, "name": {"type": "string", "description": "The name of the email, as displayed on the email dashboard."}, "campaign": {"type": "string", "description": "The ID of the campaign this email is associated to."}, "from": {"type": "object", "properties": {"customReplyTo": {"type": "string", "description": "The reply to recipients will see."}, "fromName": {"type": "string", "description": "The name recipients will see."}, "replyTo": {"type": "string", "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see."}}, "description": "Data structure representing the from fields on the email."}, "jitterSendTime": {"type": "boolean"}, "state": {"type": "string", "description": "The email state.", "enum": ["AUTOMATED", "AUTOMATED_DRAFT", "AUTOMATED_SENDING", "AUTOMATED_FOR_FORM", "AUTOMATED_FOR_FORM_BUFFER", "AUTOMATED_FOR_FORM_DRAFT", "AUTOMATED_FOR_FORM_LEGACY", "BLOG_EMAIL_DRAFT", "BLOG_EMAIL_PUBLISHED", "DRAFT", "DRAFT_AB", "DRAFT_AB_VARIANT", "ERROR", "LOSER_AB_VARIANT", "PAGE_STUB", "PRE_PROCESSING", "PROCESSING", "PUBLISHED", "PUBLISHED_AB", "PUBLISHED_AB_VARIANT", "PUBLISHED_OR_SCHEDULED", "RSS_TO_EMAIL_DRAFT", "RSS_TO_EMAIL_PUBLISHED", "SCHEDULED", "SCHEDULED_AB", "SCHEDULED_OR_PUBLISHED", "AUTOMATED_AB", "AUTOMATED_AB_VARIANT", "AUTOMATED_DRAFT_AB", "AUTOMATED_DRAFT_ABVARIANT", "AUTOMATED_LOSER_ABVARIANT", "AGENT_GENERATED"]}, "to": {"type": "object", "properties": {"contactIlsLists": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}, "limitSendFrequency": {"type": "boolean"}, "suppressGraymail": {"type": "boolean"}, "contactIds": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}, "contactLists": {"type": "object", "properties": {"include": {"type": "array", "description": "Included IDs.", "items": {"type": "string"}}, "exclude": {"type": "array", "description": "Excluded IDs.", "items": {"type": "string"}}}, "description": "Data structure representing lists of IDs that should be included and excluded."}}, "description": "Data structure representing the to fields of the email."}, "subcategory": {"type": "string", "description": "The email subcategory.", "enum": ["ab_master", "ab_variant", "ab_loser_variant", "page_stub", "landing_page", "site_page", "legacy_page", "ab_master_site_page", "ab_variant_site_page", "ab_loser_variant_site_page", "performable_landing_page", "performable_landing_page_cutover", "staged_page", "automated", "automated_for_deal", "automated_for_form", "automated_for_form_legacy", "automated_for_form_buffer", "automated_for_form_draft", "rss_to_email", "rss_to_email_child", "blog_email", "blog_email_child", "optin_email", "optin_followup_email", "batch", "resubscribe_email", "unsubscribe_confirmation_email", "resubscribe_confirmation_email", "single_send_api", "marketing_single_send_api", "smtp_token", "localtime", "automated_for_ticket", "automated_for_leadflow", "automated_for_feedback_ces", "automated_for_feedback_nps", "automated_for_feedback_custom", "membership_registration", "membership_password_saved", "membership_password_reset", "membership_otp_login", "membership_passwordless_auth", "membership_email_verification", "membership_registration_follow_up", "membership_verification", "membership_follow_up", "ticket_closed_kickback_email", "ticket_opened_kickback_email", "automated_for_custom_survey", "discardable_stub", "normal_blog_post", "legacy_blog_post", "imported_blog_post", "automated_ab_master", "automated_ab_variant", "web_interactive", "portal_content", "page_instance_layout", "kb_article_instance_layout", "kb_listing", "kb_search_results", "kb_support_form", "kb_404_page", "case_study", "case_study_listing", "case_study_instance_layout", "scp_static_page", "scp_instance_layout_page", "podcast_instance_layout", "podcast_listing", "blog_article_instance_layout", "blog_article_listing", "blog_author_detail", "UNKNOWN"]}, "sendOnPublish": {"type": "boolean", "description": "Determines whether the email will be sent immediately on publish."}}, "description": "Properties of a marketing email you can update via the API.", "example": {"activeDomain": "test.hs-sites.com", "archived": false, "campaign": "1b7f51a6-33c1-44d6-ba28-fe81f655dced", "content": {"flexAreas": {"main": {"boxed": false, "isSingleColumnFullWidth": false, "sections": [{"columns": [{"id": "column_1606761806181_0", "widgets": ["module_160676180617911"], "width": 12}], "id": "section_1606761806181", "style": {"backgroundColor": "", "backgroundType": "CONTENT"}}, {"columns": [{"id": "column-0-1", "widgets": ["module-0-1-1"], "width": 12}], "id": "section-0", "style": {"backgroundType": "CONTENT", "paddingBottom": "40px", "paddingTop": "40px"}}, {"columns": [{"id": "column-1-1", "widgets": ["module-1-1-1"], "width": 12}], "id": "section-1", "style": {"backgroundColor": "", "backgroundType": "CONTENT", "paddingBottom": "0px", "paddingTop": "0px"}}]}}, "plainTextVersion": "This is custom! View in browser ({{view_as_page_url}})\n\nHello {{ contact.firstname }},\n\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.\n\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\n\nLink text\n\nNow it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\n\nAll the best,\n\nYour full name\n\nYour job title\n\nOther contact information\n\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\n\nUnsubscribe ({{unsubscribe_link_all}})\n\nManage preferences ({{unsubscribe_link}})", "styleSettings": {}, "widgets": {"module-0-1-1": {"body": {"css_class": "dnd-module", "html": "

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

", "i18nKey": "richText.plainText", "path": "@hubspot/rich_text", "schema_version": 2}, "child_css": {}, "css": {}, "id": "module-0-1-1", "module_id": 1155639, "name": "module-0-1-1", "order": 2, "styles": {}, "type": "module"}, "module-1-1-1": {"body": {"align": "center", "css_class": "dnd-module", "font": {"color": "#23496d", "font": "Arial, sans-serif", "size": {"units": "px", "value": 12}}, "link_font": {"color": "#00a4bd", "font": "Helvetica,Arial,sans-serif", "size": {"units": "px", "value": 12}, "styles": {"bold": false, "italic": false, "underline": true}}, "path": "@hubspot/email_footer", "schema_version": 2, "unsubscribe_link_type": "both"}, "child_css": {}, "css": {}, "id": "module-1-1-1", "module_id": 2869621, "name": "module-1-1-1", "order": 3, "styles": {}, "type": "module"}, "module_160676180617911": {"body": {"font": {"color": "#00a4bd", "font": "Arial, sans-serif", "size": {"units": "px", "value": 12}, "styles": {"bold": false, "italic": false, "underline": true}}, "hs_enable_module_padding": false, "hs_wrapper_css": {}}, "child_css": {}, "css": {}, "id": "module_160676180617911", "module_id": 2794854, "name": "module_160676180617911", "styles": {}, "type": "module"}, "preview_text": {"body": {"value": ""}, "child_css": {}, "css": {}, "id": "preview_text", "label": "Preview Text This will be used as the preview text that displays in some email clients", "name": "preview_text", "order": 0, "styles": {}, "type": "text"}}}, "createdAt": "2020-11-30T18:43:17.136Z", "createdById": 3739732, "from": {"fromName": "Bruce Wayne", "replyTo": "test@hubspot.com"}, "name": "My subject", "publishDate": "2023-11-30T18:44:20.387Z", "sendOnPublish": true, "state": "DRAFT", "subcategory": "batch", "subject": "My subject", "subscriptionDetails": {"officeLocationId": "5449392956"}, "to": {"contactIds": {}, "contactIlsLists": {"exclude": [1], "include": [5]}, "suppressGraymail": true}, "webversion": {"expiresAt": "2020-11-30T18:44:20.387Z", "metaDescription": "", "redirectToPageId": 0, "redirectToUrl": "http://www.example.org"}}}', + "RECORDMARKETINGEVENTATTENDANCE": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "List of HubSpot contacts to subscribe to the marketing event", "items": {"required": ["interactionDateTime"], "type": "object", "properties": {"vid": {"type": "integer", "format": "int32"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}, "interactionDateTime": {"type": "integer", "description": "Timestamp in milliseconds at which the contact subscribed to the event.", "format": "int64"}}}}}}', + "RECORDHUBSPOTSUBSCRIBERSTATE": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "List of HubSpot contacts to subscribe to the marketing event", "items": {"required": ["interactionDateTime"], "type": "object", "properties": {"vid": {"type": "integer", "format": "int32"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}, "interactionDateTime": {"type": "integer", "description": "Timestamp in milliseconds at which the contact subscribed to the event.", "format": "int64"}}}}}}', + "UPSERTMARKETINGEVENT": '{"required": ["eventName", "eventOrganizer", "externalAccountId", "externalEventId"], "type": "object", "properties": {"startDateTime": {"type": "string", "description": "The start date and time of the marketing event.", "format": "date-time"}, "customProperties": {"type": "array", "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account\'s definition of the MarketingEvent Object. If they don\'t they will be filtered out and not set.\nIn order to do this you\'ll need to create a new PropertyGroup on the HubSpot account\'s MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", "items": {"required": ["name", "sourceUpstreamDeployable", "value"], "type": "object", "properties": {"sourceId": {"type": "string", "description": "The ID of the property source indicating where it was created.", "example": ""}, "selectedByUser": {"type": "boolean", "description": "Whether the value was selected by a user.", "example": false}, "sourceLabel": {"type": "string", "description": "A human-readable label.", "example": ""}, "sourceUpstreamDeployable": {"type": "string"}, "source": {"type": "string", "description": "The origin of the property value, such as "IMPORT" or "API".", "example": "", "enum": ["UNKNOWN", "IMPORT", "API", "FORM", "ANALYTICS", "MIGRATION", "SALESFORCE", "INTEGRATION", "CONTACTS_WEB", "WAL_INCREMENTAL", "TASK", "EMAIL", "WORKFLOWS", "CALCULATED", "SOCIAL", "BATCH_UPDATE", "SIGNALS", "BIDEN", "DEFAULT", "COMPANIES", "DEALS", "ASSISTS", "PRESENTATIONS", "TALLY", "SIDEKICK", "CRM_UI", "MERGE_CONTACTS", "PORTAL_USER_ASSOCIATOR", "INTEGRATIONS_PLATFORM", "BCC_TO_CRM", "FORWARD_TO_CRM", "ENGAGEMENTS", "SALES", "HEISENBERG", "LEADIN", "GMAIL_INTEGRATION", "ACADEMY", "SALES_MESSAGES", "AVATARS_SERVICE", "MERGE_COMPANIES", "SEQUENCES", "COMPANY_FAMILIES", "MOBILE_IOS", "MOBILE_ANDROID", "CONTACTS", "ASSOCIATIONS", "EXTENSION", "SUCCESS", "BOT", "INTEGRATIONS_SYNC", "AUTOMATION_PLATFORM", "CONVERSATIONS", "EMAIL_INTEGRATION", "CONTENT_MEMBERSHIP", "QUOTES", "BET_ASSIGNMENT", "QUOTAS", "BET_CRM_CONNECTOR", "MEETINGS", "MERGE_OBJECTS", "RECYCLING_BIN", "ADS", "AI_GROUP", "COMMUNICATOR", "SETTINGS", "PROPERTY_SETTINGS", "PIPELINE_SETTINGS", "COMPANY_INSIGHTS", "BEHAVIORAL_EVENTS", "PAYMENTS", "GOALS", "PORTAL_OBJECT_SYNC", "APPROVALS", "FILE_MANAGER", "MARKETPLACE", "INTERNAL_PROCESSING", "FORECASTING", "SLACK_INTEGRATION", "CRM_UI_BULK_ACTION", "WORKFLOW_CONTACT_DELETE_ACTION", "ACCEPTANCE_TEST", "PLAYBOOKS", "CHATSPOT", "FLYWHEEL_PRODUCT_DATA_SYNC", "HELP_DESK", "BILLING", "DATA_ENRICHMENT", "AUTOMATION_JOURNEY", "MICROAPPS", "INTENT", "PROSPECTING_AGENT", "CENTRAL_EXCHANGE_RATES", "HELP_DESK_AI", "CONVERSATIONAL_ENRICHMENT", "CRM_PROCESSES_PLATFORM", "CLONE_OBJECTS", "MARKET_SOURCING", "DATASET", "PROPERTY_RESTORE"]}, "updatedByUserId": {"type": "integer", "description": "The ID of the user who updated the property.", "format": "int32"}, "persistenceTimestamp": {"type": "integer", "format": "int64"}, "sourceMetadata": {"type": "string", "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", "example": ""}, "dataSensitivity": {"type": "string", "description": "The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive".", "example": "", "enum": ["none", "standard", "high"]}, "sourceVid": {"type": "array", "description": "The unique identifier associated with the source.", "example": "", "items": {"type": "integer", "format": "int64"}}, "unit": {"type": "string", "description": "The unit of measurement or context for the value.", "example": ""}, "requestId": {"type": "string", "description": "A unique ID associated with this request.", "example": ""}, "isEncrypted": {"type": "boolean", "description": "Whether the property value is encrypted.", "example": false}, "name": {"type": "string", "description": "Name of custom property", "example": ""}, "useTimestampAsPersistenceTimestamp": {"type": "boolean"}, "value": {"type": "string", "description": "Custom property value", "example": ""}, "selectedByUserTimestamp": {"type": "integer", "description": "The timestamp when the value was selected by a user, if applicable.", "format": "int64"}, "timestamp": {"type": "integer", "description": "When the value was set, as a 64-bit integer.", "format": "int64"}, "isLargeValue": {"type": "boolean"}}, "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes."}}, "externalAccountId": {"type": "string", "description": "The accountId that is associated with this marketing event in the external event application."}, "eventCancelled": {"type": "boolean", "description": "Indicates if the marketing event has been cancelled. Defaults to `false`"}, "eventOrganizer": {"type": "string", "description": "The name of the organizer of the marketing event."}, "eventUrl": {"type": "string", "description": "A URL in the external event application where the marketing event can be managed."}, "externalEventId": {"type": "string", "description": "The id of the marketing event in the external event application."}, "eventDescription": {"type": "string", "description": "The description of the marketing event."}, "eventName": {"type": "string", "description": "The name of the marketing event."}, "eventType": {"type": "string", "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`"}, "eventCompleted": {"type": "boolean"}, "endDateTime": {"type": "string", "description": "The end date and time of the marketing event.", "format": "date-time"}}}', + "UPDATEMARKETINGEVENTDETAILS": '{"type": "object", "properties": {"startDateTime": {"type": "string", "description": "The start date and time of the marketing event.", "format": "date-time"}, "customProperties": {"type": "array", "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account\'s definition of the MarketingEvent Object. If they don\'t they will be filtered out and not set.\nIn order to do this you\'ll need to create a new PropertyGroup on the HubSpot account\'s MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", "items": {"required": ["name", "sourceUpstreamDeployable", "value"], "type": "object", "properties": {"sourceId": {"type": "string", "description": "The ID of the property source indicating where it was created.", "example": ""}, "selectedByUser": {"type": "boolean", "description": "Whether the value was selected by a user.", "example": false}, "sourceLabel": {"type": "string", "description": "A human-readable label.", "example": ""}, "sourceUpstreamDeployable": {"type": "string"}, "source": {"type": "string", "description": "The origin of the property value, such as "IMPORT" or "API".", "example": "", "enum": ["UNKNOWN", "IMPORT", "API", "FORM", "ANALYTICS", "MIGRATION", "SALESFORCE", "INTEGRATION", "CONTACTS_WEB", "WAL_INCREMENTAL", "TASK", "EMAIL", "WORKFLOWS", "CALCULATED", "SOCIAL", "BATCH_UPDATE", "SIGNALS", "BIDEN", "DEFAULT", "COMPANIES", "DEALS", "ASSISTS", "PRESENTATIONS", "TALLY", "SIDEKICK", "CRM_UI", "MERGE_CONTACTS", "PORTAL_USER_ASSOCIATOR", "INTEGRATIONS_PLATFORM", "BCC_TO_CRM", "FORWARD_TO_CRM", "ENGAGEMENTS", "SALES", "HEISENBERG", "LEADIN", "GMAIL_INTEGRATION", "ACADEMY", "SALES_MESSAGES", "AVATARS_SERVICE", "MERGE_COMPANIES", "SEQUENCES", "COMPANY_FAMILIES", "MOBILE_IOS", "MOBILE_ANDROID", "CONTACTS", "ASSOCIATIONS", "EXTENSION", "SUCCESS", "BOT", "INTEGRATIONS_SYNC", "AUTOMATION_PLATFORM", "CONVERSATIONS", "EMAIL_INTEGRATION", "CONTENT_MEMBERSHIP", "QUOTES", "BET_ASSIGNMENT", "QUOTAS", "BET_CRM_CONNECTOR", "MEETINGS", "MERGE_OBJECTS", "RECYCLING_BIN", "ADS", "AI_GROUP", "COMMUNICATOR", "SETTINGS", "PROPERTY_SETTINGS", "PIPELINE_SETTINGS", "COMPANY_INSIGHTS", "BEHAVIORAL_EVENTS", "PAYMENTS", "GOALS", "PORTAL_OBJECT_SYNC", "APPROVALS", "FILE_MANAGER", "MARKETPLACE", "INTERNAL_PROCESSING", "FORECASTING", "SLACK_INTEGRATION", "CRM_UI_BULK_ACTION", "WORKFLOW_CONTACT_DELETE_ACTION", "ACCEPTANCE_TEST", "PLAYBOOKS", "CHATSPOT", "FLYWHEEL_PRODUCT_DATA_SYNC", "HELP_DESK", "BILLING", "DATA_ENRICHMENT", "AUTOMATION_JOURNEY", "MICROAPPS", "INTENT", "PROSPECTING_AGENT", "CENTRAL_EXCHANGE_RATES", "HELP_DESK_AI", "CONVERSATIONAL_ENRICHMENT", "CRM_PROCESSES_PLATFORM", "CLONE_OBJECTS", "MARKET_SOURCING", "DATASET", "PROPERTY_RESTORE"]}, "updatedByUserId": {"type": "integer", "description": "The ID of the user who updated the property.", "format": "int32"}, "persistenceTimestamp": {"type": "integer", "format": "int64"}, "sourceMetadata": {"type": "string", "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", "example": ""}, "dataSensitivity": {"type": "string", "description": "The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive".", "example": "", "enum": ["none", "standard", "high"]}, "sourceVid": {"type": "array", "description": "The unique identifier associated with the source.", "example": "", "items": {"type": "integer", "format": "int64"}}, "unit": {"type": "string", "description": "The unit of measurement or context for the value.", "example": ""}, "requestId": {"type": "string", "description": "A unique ID associated with this request.", "example": ""}, "isEncrypted": {"type": "boolean", "description": "Whether the property value is encrypted.", "example": false}, "name": {"type": "string", "description": "Name of custom property", "example": ""}, "useTimestampAsPersistenceTimestamp": {"type": "boolean"}, "value": {"type": "string", "description": "Custom property value", "example": ""}, "selectedByUserTimestamp": {"type": "integer", "description": "The timestamp when the value was selected by a user, if applicable.", "format": "int64"}, "timestamp": {"type": "integer", "description": "When the value was set, as a 64-bit integer.", "format": "int64"}, "isLargeValue": {"type": "boolean"}}, "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes."}}, "eventCancelled": {"type": "boolean", "description": "Indicates if the marketing event has been cancelled. Defaults to `false`"}, "eventOrganizer": {"type": "string", "description": "The name of the organizer of the marketing event."}, "eventUrl": {"type": "string", "description": "A URL in the external event application where the marketing event can be managed."}, "eventDescription": {"type": "string", "description": "The description of the marketing event."}, "eventName": {"type": "string", "description": "The name of the marketing event."}, "eventType": {"type": "string", "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`"}, "eventCompleted": {"type": "boolean"}, "endDateTime": {"type": "string", "description": "The end date and time of the marketing event.", "format": "date-time"}}}', + "UPSERTMARKETINGEVENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["eventName", "eventOrganizer", "externalAccountId", "externalEventId"], "type": "object", "properties": {"startDateTime": {"type": "string", "description": "The start date and time of the marketing event.", "format": "date-time"}, "customProperties": {"type": "array", "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account\'s definition of the MarketingEvent Object. If they don\'t they will be filtered out and not set.\nIn order to do this you\'ll need to create a new PropertyGroup on the HubSpot account\'s MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", "items": {"required": ["name", "sourceUpstreamDeployable", "value"], "type": "object", "properties": {"sourceId": {"type": "string", "description": "The ID of the property source indicating where it was created.", "example": ""}, "selectedByUser": {"type": "boolean", "description": "Whether the value was selected by a user.", "example": false}, "sourceLabel": {"type": "string", "description": "A human-readable label.", "example": ""}, "sourceUpstreamDeployable": {"type": "string"}, "source": {"type": "string", "description": "The origin of the property value, such as "IMPORT" or "API".", "example": "", "enum": ["UNKNOWN", "IMPORT", "API", "FORM", "ANALYTICS", "MIGRATION", "SALESFORCE", "INTEGRATION", "CONTACTS_WEB", "WAL_INCREMENTAL", "TASK", "EMAIL", "WORKFLOWS", "CALCULATED", "SOCIAL", "BATCH_UPDATE", "SIGNALS", "BIDEN", "DEFAULT", "COMPANIES", "DEALS", "ASSISTS", "PRESENTATIONS", "TALLY", "SIDEKICK", "CRM_UI", "MERGE_CONTACTS", "PORTAL_USER_ASSOCIATOR", "INTEGRATIONS_PLATFORM", "BCC_TO_CRM", "FORWARD_TO_CRM", "ENGAGEMENTS", "SALES", "HEISENBERG", "LEADIN", "GMAIL_INTEGRATION", "ACADEMY", "SALES_MESSAGES", "AVATARS_SERVICE", "MERGE_COMPANIES", "SEQUENCES", "COMPANY_FAMILIES", "MOBILE_IOS", "MOBILE_ANDROID", "CONTACTS", "ASSOCIATIONS", "EXTENSION", "SUCCESS", "BOT", "INTEGRATIONS_SYNC", "AUTOMATION_PLATFORM", "CONVERSATIONS", "EMAIL_INTEGRATION", "CONTENT_MEMBERSHIP", "QUOTES", "BET_ASSIGNMENT", "QUOTAS", "BET_CRM_CONNECTOR", "MEETINGS", "MERGE_OBJECTS", "RECYCLING_BIN", "ADS", "AI_GROUP", "COMMUNICATOR", "SETTINGS", "PROPERTY_SETTINGS", "PIPELINE_SETTINGS", "COMPANY_INSIGHTS", "BEHAVIORAL_EVENTS", "PAYMENTS", "GOALS", "PORTAL_OBJECT_SYNC", "APPROVALS", "FILE_MANAGER", "MARKETPLACE", "INTERNAL_PROCESSING", "FORECASTING", "SLACK_INTEGRATION", "CRM_UI_BULK_ACTION", "WORKFLOW_CONTACT_DELETE_ACTION", "ACCEPTANCE_TEST", "PLAYBOOKS", "CHATSPOT", "FLYWHEEL_PRODUCT_DATA_SYNC", "HELP_DESK", "BILLING", "DATA_ENRICHMENT", "AUTOMATION_JOURNEY", "MICROAPPS", "INTENT", "PROSPECTING_AGENT", "CENTRAL_EXCHANGE_RATES", "HELP_DESK_AI", "CONVERSATIONAL_ENRICHMENT", "CRM_PROCESSES_PLATFORM", "CLONE_OBJECTS", "MARKET_SOURCING", "DATASET", "PROPERTY_RESTORE"]}, "updatedByUserId": {"type": "integer", "description": "The ID of the user who updated the property.", "format": "int32"}, "persistenceTimestamp": {"type": "integer", "format": "int64"}, "sourceMetadata": {"type": "string", "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", "example": ""}, "dataSensitivity": {"type": "string", "description": "The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive".", "example": "", "enum": ["none", "standard", "high"]}, "sourceVid": {"type": "array", "description": "The unique identifier associated with the source.", "example": "", "items": {"type": "integer", "format": "int64"}}, "unit": {"type": "string", "description": "The unit of measurement or context for the value.", "example": ""}, "requestId": {"type": "string", "description": "A unique ID associated with this request.", "example": ""}, "isEncrypted": {"type": "boolean", "description": "Whether the property value is encrypted.", "example": false}, "name": {"type": "string", "description": "Name of custom property", "example": ""}, "useTimestampAsPersistenceTimestamp": {"type": "boolean"}, "value": {"type": "string", "description": "Custom property value", "example": ""}, "selectedByUserTimestamp": {"type": "integer", "description": "The timestamp when the value was selected by a user, if applicable.", "format": "int64"}, "timestamp": {"type": "integer", "description": "When the value was set, as a 64-bit integer.", "format": "int64"}, "isLargeValue": {"type": "boolean"}}, "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes."}}, "externalAccountId": {"type": "string", "description": "The accountId that is associated with this marketing event in the external event application."}, "eventCancelled": {"type": "boolean", "description": "Indicates if the marketing event has been cancelled. Defaults to `false`"}, "eventOrganizer": {"type": "string", "description": "The name of the organizer of the marketing event."}, "eventUrl": {"type": "string", "description": "A URL in the external event application where the marketing event can be managed."}, "externalEventId": {"type": "string", "description": "The id of the marketing event in the external event application."}, "eventDescription": {"type": "string", "description": "The description of the marketing event."}, "eventName": {"type": "string", "description": "The name of the marketing event."}, "eventType": {"type": "string", "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`"}, "eventCompleted": {"type": "boolean"}, "endDateTime": {"type": "string", "description": "The end date and time of the marketing event.", "format": "date-time"}}}}}}', + "RECORDEVENTPARTICIPATIONHUBSPOT": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "List of marketing event details to create or update", "items": {"required": ["email", "interactionDateTime"], "type": "object", "properties": {"contactProperties": {"type": "object", "additionalProperties": {"type": "string"}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}, "email": {"type": "string", "description": "The email address of the contact in HubSpot to associate with the event."}, "interactionDateTime": {"type": "integer", "description": "Timestamp in milliseconds at which the contact subscribed to the event.", "format": "int64"}}}}}}', + "MODIFYEVENTINFORMATION": '{"required": ["customProperties"], "type": "object", "properties": {"startDateTime": {"type": "string", "format": "date-time"}, "customProperties": {"type": "array", "items": {"required": ["name", "sourceUpstreamDeployable", "value"], "type": "object", "properties": {"sourceId": {"type": "string", "description": "The ID of the property source indicating where it was created.", "example": ""}, "selectedByUser": {"type": "boolean", "description": "Whether the value was selected by a user.", "example": false}, "sourceLabel": {"type": "string", "description": "A human-readable label.", "example": ""}, "sourceUpstreamDeployable": {"type": "string"}, "source": {"type": "string", "description": "The origin of the property value, such as "IMPORT" or "API".", "example": "", "enum": ["UNKNOWN", "IMPORT", "API", "FORM", "ANALYTICS", "MIGRATION", "SALESFORCE", "INTEGRATION", "CONTACTS_WEB", "WAL_INCREMENTAL", "TASK", "EMAIL", "WORKFLOWS", "CALCULATED", "SOCIAL", "BATCH_UPDATE", "SIGNALS", "BIDEN", "DEFAULT", "COMPANIES", "DEALS", "ASSISTS", "PRESENTATIONS", "TALLY", "SIDEKICK", "CRM_UI", "MERGE_CONTACTS", "PORTAL_USER_ASSOCIATOR", "INTEGRATIONS_PLATFORM", "BCC_TO_CRM", "FORWARD_TO_CRM", "ENGAGEMENTS", "SALES", "HEISENBERG", "LEADIN", "GMAIL_INTEGRATION", "ACADEMY", "SALES_MESSAGES", "AVATARS_SERVICE", "MERGE_COMPANIES", "SEQUENCES", "COMPANY_FAMILIES", "MOBILE_IOS", "MOBILE_ANDROID", "CONTACTS", "ASSOCIATIONS", "EXTENSION", "SUCCESS", "BOT", "INTEGRATIONS_SYNC", "AUTOMATION_PLATFORM", "CONVERSATIONS", "EMAIL_INTEGRATION", "CONTENT_MEMBERSHIP", "QUOTES", "BET_ASSIGNMENT", "QUOTAS", "BET_CRM_CONNECTOR", "MEETINGS", "MERGE_OBJECTS", "RECYCLING_BIN", "ADS", "AI_GROUP", "COMMUNICATOR", "SETTINGS", "PROPERTY_SETTINGS", "PIPELINE_SETTINGS", "COMPANY_INSIGHTS", "BEHAVIORAL_EVENTS", "PAYMENTS", "GOALS", "PORTAL_OBJECT_SYNC", "APPROVALS", "FILE_MANAGER", "MARKETPLACE", "INTERNAL_PROCESSING", "FORECASTING", "SLACK_INTEGRATION", "CRM_UI_BULK_ACTION", "WORKFLOW_CONTACT_DELETE_ACTION", "ACCEPTANCE_TEST", "PLAYBOOKS", "CHATSPOT", "FLYWHEEL_PRODUCT_DATA_SYNC", "HELP_DESK", "BILLING", "DATA_ENRICHMENT", "AUTOMATION_JOURNEY", "MICROAPPS", "INTENT", "PROSPECTING_AGENT", "CENTRAL_EXCHANGE_RATES", "HELP_DESK_AI", "CONVERSATIONAL_ENRICHMENT", "CRM_PROCESSES_PLATFORM", "CLONE_OBJECTS", "MARKET_SOURCING", "DATASET", "PROPERTY_RESTORE"]}, "updatedByUserId": {"type": "integer", "description": "The ID of the user who updated the property.", "format": "int32"}, "persistenceTimestamp": {"type": "integer", "format": "int64"}, "sourceMetadata": {"type": "string", "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", "example": ""}, "dataSensitivity": {"type": "string", "description": "The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive".", "example": "", "enum": ["none", "standard", "high"]}, "sourceVid": {"type": "array", "description": "The unique identifier associated with the source.", "example": "", "items": {"type": "integer", "format": "int64"}}, "unit": {"type": "string", "description": "The unit of measurement or context for the value.", "example": ""}, "requestId": {"type": "string", "description": "A unique ID associated with this request.", "example": ""}, "isEncrypted": {"type": "boolean", "description": "Whether the property value is encrypted.", "example": false}, "name": {"type": "string", "description": "Name of custom property", "example": ""}, "useTimestampAsPersistenceTimestamp": {"type": "boolean"}, "value": {"type": "string", "description": "Custom property value", "example": ""}, "selectedByUserTimestamp": {"type": "integer", "description": "The timestamp when the value was selected by a user, if applicable.", "format": "int64"}, "timestamp": {"type": "integer", "description": "When the value was set, as a 64-bit integer.", "format": "int64"}, "isLargeValue": {"type": "boolean"}}, "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes."}}, "eventCancelled": {"type": "boolean"}, "eventOrganizer": {"type": "string"}, "eventUrl": {"type": "string"}, "eventDescription": {"type": "string"}, "eventName": {"type": "string"}, "eventType": {"type": "string"}, "endDateTime": {"type": "string", "format": "date-time"}}}', + "REGISTEREVENTPARTICIPATION": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "List of marketing event details to create or update", "items": {"required": ["email", "interactionDateTime"], "type": "object", "properties": {"contactProperties": {"type": "object", "additionalProperties": {"type": "string"}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}, "email": {"type": "string", "description": "The email address of the contact in HubSpot to associate with the event."}, "interactionDateTime": {"type": "integer", "description": "Timestamp in milliseconds at which the contact subscribed to the event.", "format": "int64"}}}}}}', + "RECORDEVENTATTENDANCE": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "List of HubSpot contacts to subscribe to the marketing event", "items": {"required": ["interactionDateTime"], "type": "object", "properties": {"vid": {"type": "integer", "format": "int32"}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}, "interactionDateTime": {"type": "integer", "description": "Timestamp in milliseconds at which the contact subscribed to the event.", "format": "int64"}}}}}}', + "UPDATEMARKETINGEVENTSBATCH": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["customProperties", "objectId"], "type": "object", "properties": {"startDateTime": {"type": "string", "format": "date-time"}, "customProperties": {"type": "array", "items": {"required": ["name", "sourceUpstreamDeployable", "value"], "type": "object", "properties": {"sourceId": {"type": "string", "description": "The ID of the property source indicating where it was created.", "example": ""}, "selectedByUser": {"type": "boolean", "description": "Whether the value was selected by a user.", "example": false}, "sourceLabel": {"type": "string", "description": "A human-readable label.", "example": ""}, "sourceUpstreamDeployable": {"type": "string"}, "source": {"type": "string", "description": "The origin of the property value, such as "IMPORT" or "API".", "example": "", "enum": ["UNKNOWN", "IMPORT", "API", "FORM", "ANALYTICS", "MIGRATION", "SALESFORCE", "INTEGRATION", "CONTACTS_WEB", "WAL_INCREMENTAL", "TASK", "EMAIL", "WORKFLOWS", "CALCULATED", "SOCIAL", "BATCH_UPDATE", "SIGNALS", "BIDEN", "DEFAULT", "COMPANIES", "DEALS", "ASSISTS", "PRESENTATIONS", "TALLY", "SIDEKICK", "CRM_UI", "MERGE_CONTACTS", "PORTAL_USER_ASSOCIATOR", "INTEGRATIONS_PLATFORM", "BCC_TO_CRM", "FORWARD_TO_CRM", "ENGAGEMENTS", "SALES", "HEISENBERG", "LEADIN", "GMAIL_INTEGRATION", "ACADEMY", "SALES_MESSAGES", "AVATARS_SERVICE", "MERGE_COMPANIES", "SEQUENCES", "COMPANY_FAMILIES", "MOBILE_IOS", "MOBILE_ANDROID", "CONTACTS", "ASSOCIATIONS", "EXTENSION", "SUCCESS", "BOT", "INTEGRATIONS_SYNC", "AUTOMATION_PLATFORM", "CONVERSATIONS", "EMAIL_INTEGRATION", "CONTENT_MEMBERSHIP", "QUOTES", "BET_ASSIGNMENT", "QUOTAS", "BET_CRM_CONNECTOR", "MEETINGS", "MERGE_OBJECTS", "RECYCLING_BIN", "ADS", "AI_GROUP", "COMMUNICATOR", "SETTINGS", "PROPERTY_SETTINGS", "PIPELINE_SETTINGS", "COMPANY_INSIGHTS", "BEHAVIORAL_EVENTS", "PAYMENTS", "GOALS", "PORTAL_OBJECT_SYNC", "APPROVALS", "FILE_MANAGER", "MARKETPLACE", "INTERNAL_PROCESSING", "FORECASTING", "SLACK_INTEGRATION", "CRM_UI_BULK_ACTION", "WORKFLOW_CONTACT_DELETE_ACTION", "ACCEPTANCE_TEST", "PLAYBOOKS", "CHATSPOT", "FLYWHEEL_PRODUCT_DATA_SYNC", "HELP_DESK", "BILLING", "DATA_ENRICHMENT", "AUTOMATION_JOURNEY", "MICROAPPS", "INTENT", "PROSPECTING_AGENT", "CENTRAL_EXCHANGE_RATES", "HELP_DESK_AI", "CONVERSATIONAL_ENRICHMENT", "CRM_PROCESSES_PLATFORM", "CLONE_OBJECTS", "MARKET_SOURCING", "DATASET", "PROPERTY_RESTORE"]}, "updatedByUserId": {"type": "integer", "description": "The ID of the user who updated the property.", "format": "int32"}, "persistenceTimestamp": {"type": "integer", "format": "int64"}, "sourceMetadata": {"type": "string", "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", "example": ""}, "dataSensitivity": {"type": "string", "description": "The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive".", "example": "", "enum": ["none", "standard", "high"]}, "sourceVid": {"type": "array", "description": "The unique identifier associated with the source.", "example": "", "items": {"type": "integer", "format": "int64"}}, "unit": {"type": "string", "description": "The unit of measurement or context for the value.", "example": ""}, "requestId": {"type": "string", "description": "A unique ID associated with this request.", "example": ""}, "isEncrypted": {"type": "boolean", "description": "Whether the property value is encrypted.", "example": false}, "name": {"type": "string", "description": "Name of custom property", "example": ""}, "useTimestampAsPersistenceTimestamp": {"type": "boolean"}, "value": {"type": "string", "description": "Custom property value", "example": ""}, "selectedByUserTimestamp": {"type": "integer", "description": "The timestamp when the value was selected by a user, if applicable.", "format": "int64"}, "timestamp": {"type": "integer", "description": "When the value was set, as a 64-bit integer.", "format": "int64"}, "isLargeValue": {"type": "boolean"}}, "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes."}}, "eventCancelled": {"type": "boolean"}, "eventOrganizer": {"type": "string"}, "eventUrl": {"type": "string"}, "eventDescription": {"type": "string"}, "eventName": {"type": "string"}, "eventType": {"type": "string"}, "endDateTime": {"type": "string", "format": "date-time"}, "objectId": {"type": "string"}}}}}}', + "DELETEMARKETINGEVENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["objectId"], "type": "object", "properties": {"objectId": {"type": "string"}}}}}}', + "REMOVEMARKETINGEVENTS": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "items": {"required": ["appId", "externalAccountId", "externalEventId"], "type": "object", "properties": {"externalAccountId": {"type": "string", "description": "The accountId that is associated with this marketing event in the external event application."}, "externalEventId": {"type": "string", "description": "The id of the marketing event in the external event application."}, "appId": {"type": "integer", "description": "The id of the application that created the marketing event in HubSpot.", "format": "int32"}}}}}}', + "RECORDSUBSCRIBERSTATE": '{"required": ["inputs"], "type": "object", "properties": {"inputs": {"type": "array", "description": "List of marketing event details to create or update", "items": {"required": ["email", "interactionDateTime"], "type": "object", "properties": {"contactProperties": {"type": "object", "additionalProperties": {"type": "string"}}, "properties": {"type": "object", "additionalProperties": {"type": "string"}}, "email": {"type": "string", "description": "The email address of the contact in HubSpot to associate with the event."}, "interactionDateTime": {"type": "integer", "description": "Timestamp in milliseconds at which the contact subscribed to the event.", "format": "int64"}}}}}}', + "CREATEMARKETINGEVENT": '{"required": ["eventName", "eventOrganizer", "externalAccountId", "externalEventId"], "type": "object", "properties": {"startDateTime": {"type": "string", "description": "The start date and time of the marketing event.", "format": "date-time"}, "customProperties": {"type": "array", "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account\'s definition of the MarketingEvent Object. If they don\'t they will be filtered out and not set.\nIn order to do this you\'ll need to create a new PropertyGroup on the HubSpot account\'s MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n", "items": {"required": ["name", "sourceUpstreamDeployable", "value"], "type": "object", "properties": {"sourceId": {"type": "string", "description": "The ID of the property source indicating where it was created.", "example": ""}, "selectedByUser": {"type": "boolean", "description": "Whether the value was selected by a user.", "example": false}, "sourceLabel": {"type": "string", "description": "A human-readable label.", "example": ""}, "sourceUpstreamDeployable": {"type": "string"}, "source": {"type": "string", "description": "The origin of the property value, such as "IMPORT" or "API".", "example": "", "enum": ["UNKNOWN", "IMPORT", "API", "FORM", "ANALYTICS", "MIGRATION", "SALESFORCE", "INTEGRATION", "CONTACTS_WEB", "WAL_INCREMENTAL", "TASK", "EMAIL", "WORKFLOWS", "CALCULATED", "SOCIAL", "BATCH_UPDATE", "SIGNALS", "BIDEN", "DEFAULT", "COMPANIES", "DEALS", "ASSISTS", "PRESENTATIONS", "TALLY", "SIDEKICK", "CRM_UI", "MERGE_CONTACTS", "PORTAL_USER_ASSOCIATOR", "INTEGRATIONS_PLATFORM", "BCC_TO_CRM", "FORWARD_TO_CRM", "ENGAGEMENTS", "SALES", "HEISENBERG", "LEADIN", "GMAIL_INTEGRATION", "ACADEMY", "SALES_MESSAGES", "AVATARS_SERVICE", "MERGE_COMPANIES", "SEQUENCES", "COMPANY_FAMILIES", "MOBILE_IOS", "MOBILE_ANDROID", "CONTACTS", "ASSOCIATIONS", "EXTENSION", "SUCCESS", "BOT", "INTEGRATIONS_SYNC", "AUTOMATION_PLATFORM", "CONVERSATIONS", "EMAIL_INTEGRATION", "CONTENT_MEMBERSHIP", "QUOTES", "BET_ASSIGNMENT", "QUOTAS", "BET_CRM_CONNECTOR", "MEETINGS", "MERGE_OBJECTS", "RECYCLING_BIN", "ADS", "AI_GROUP", "COMMUNICATOR", "SETTINGS", "PROPERTY_SETTINGS", "PIPELINE_SETTINGS", "COMPANY_INSIGHTS", "BEHAVIORAL_EVENTS", "PAYMENTS", "GOALS", "PORTAL_OBJECT_SYNC", "APPROVALS", "FILE_MANAGER", "MARKETPLACE", "INTERNAL_PROCESSING", "FORECASTING", "SLACK_INTEGRATION", "CRM_UI_BULK_ACTION", "WORKFLOW_CONTACT_DELETE_ACTION", "ACCEPTANCE_TEST", "PLAYBOOKS", "CHATSPOT", "FLYWHEEL_PRODUCT_DATA_SYNC", "HELP_DESK", "BILLING", "DATA_ENRICHMENT", "AUTOMATION_JOURNEY", "MICROAPPS", "INTENT", "PROSPECTING_AGENT", "CENTRAL_EXCHANGE_RATES", "HELP_DESK_AI", "CONVERSATIONAL_ENRICHMENT", "CRM_PROCESSES_PLATFORM", "CLONE_OBJECTS", "MARKET_SOURCING", "DATASET", "PROPERTY_RESTORE"]}, "updatedByUserId": {"type": "integer", "description": "The ID of the user who updated the property.", "format": "int32"}, "persistenceTimestamp": {"type": "integer", "format": "int64"}, "sourceMetadata": {"type": "string", "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`", "example": ""}, "dataSensitivity": {"type": "string", "description": "The sensitivity level of the property, such as "non_sensitive", "sensitive", and "highly_sensitive".", "example": "", "enum": ["none", "standard", "high"]}, "sourceVid": {"type": "array", "description": "The unique identifier associated with the source.", "example": "", "items": {"type": "integer", "format": "int64"}}, "unit": {"type": "string", "description": "The unit of measurement or context for the value.", "example": ""}, "requestId": {"type": "string", "description": "A unique ID associated with this request.", "example": ""}, "isEncrypted": {"type": "boolean", "description": "Whether the property value is encrypted.", "example": false}, "name": {"type": "string", "description": "Name of custom property", "example": ""}, "useTimestampAsPersistenceTimestamp": {"type": "boolean"}, "value": {"type": "string", "description": "Custom property value", "example": ""}, "selectedByUserTimestamp": {"type": "integer", "description": "The timestamp when the value was selected by a user, if applicable.", "format": "int64"}, "timestamp": {"type": "integer", "description": "When the value was set, as a 64-bit integer.", "format": "int64"}, "isLargeValue": {"type": "boolean"}}, "description": "Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes."}}, "externalAccountId": {"type": "string", "description": "The accountId that is associated with this marketing event in the external event application."}, "eventCancelled": {"type": "boolean", "description": "Indicates if the marketing event has been cancelled. Defaults to `false`"}, "eventOrganizer": {"type": "string", "description": "The name of the organizer of the marketing event."}, "eventUrl": {"type": "string", "description": "A URL in the external event application where the marketing event can be managed."}, "externalEventId": {"type": "string", "description": "The id of the marketing event in the external event application."}, "eventDescription": {"type": "string", "description": "The description of the marketing event."}, "eventName": {"type": "string", "description": "The name of the marketing event."}, "eventType": {"type": "string", "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`"}, "eventCompleted": {"type": "boolean"}, "endDateTime": {"type": "string", "description": "The end date and time of the marketing event.", "format": "date-time"}}}', + "SENDMARKETINGEMAIL": '{"required": ["emailId", "message"], "type": "object", "properties": {"customProperties": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}, "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property."}, "emailId": {"type": "integer", "description": "The content ID for the email, which can be found in email tool UI.", "format": "int64"}, "message": {"required": ["to"], "type": "object", "properties": {"cc": {"type": "array", "description": "List of email addresses to send as Cc.", "items": {"type": "string"}}, "sendId": {"type": "string", "description": "ID for a particular send. No more than one email will be sent per sendId."}, "bcc": {"type": "array", "description": "List of email addresses to send as Bcc.", "items": {"type": "string"}}, "replyTo": {"type": "array", "description": "List of Reply-To header values for the email.", "items": {"type": "string"}}, "from": {"type": "string", "description": "The From header for the email."}, "to": {"type": "string", "description": "The recipient of the email."}}, "description": "A JSON object containing anything you want to override."}, "contactProperties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment."}}, "description": "A request to send a single email asynchronously."}', + "SENDTRANSACTIONALEMAIL": '{"required": ["emailId", "message"], "type": "object", "properties": {"customProperties": {"type": "object", "additionalProperties": {"type": "object", "properties": {}}, "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property."}, "emailId": {"type": "integer", "description": "The content ID for the transactional email, which can be found in email tool UI.", "format": "int32"}, "message": {"required": ["to"], "type": "object", "properties": {"cc": {"type": "array", "description": "List of email addresses to send as Cc.", "items": {"type": "string"}}, "sendId": {"type": "string", "description": "ID for a particular send. No more than one email will be sent per sendId."}, "bcc": {"type": "array", "description": "List of email addresses to send as Bcc.", "items": {"type": "string"}}, "replyTo": {"type": "array", "description": "List of Reply-To header values for the email.", "items": {"type": "string"}}, "from": {"type": "string", "description": "The From header for the email."}, "to": {"type": "string", "description": "The recipient of the email."}}, "description": "A JSON object containing anything you want to override."}, "contactProperties": {"type": "object", "additionalProperties": {"type": "string"}, "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment."}}, "description": "A request to send a single transactional email asynchronously."}', +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AddCampaignBudgetItem.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AddCampaignBudgetItem.json new file mode 100644 index 00000000..d9475cc7 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AddCampaignBudgetItem.json @@ -0,0 +1,241 @@ +{ + "name": "AddCampaignBudgetItem", + "fully_qualified_name": "HubspotMarketingApi.AddCampaignBudgetItem@0.1.0", + "description": "Add a new budget item to a marketing campaign.\n\nUse this tool to add a budget item to an existing campaign in HubSpot Marketing. Ideal for updating campaign financials.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_id", + "required": true, + "description": "Unique identifier for the campaign in HubSpot Marketing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "budget_amount", + "required": true, + "description": "The monetary amount for the budget item. It should be a numeric value denoting the budget amount to add to the campaign.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "amount" + }, + { + "name": "budget_item_name", + "required": true, + "description": "Name of the budget item to be added to the campaign. It should be descriptive and concise.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "budget_item_order", + "required": true, + "description": "The position or priority of the budget item in the list. Provide as an integer.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "budget_item_description", + "required": false, + "description": "A brief description of the budget item being added to the campaign. This can include details about what the budget will be used for and any other relevant information.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/{campaignGuid}/budget'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_id", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "amount", + "tool_parameter_name": "budget_amount", + "description": "", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "budget_item_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "budget_item_description", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "budget_item_order", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveCampaignsBatch.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveCampaignsBatch.json new file mode 100644 index 00000000..b9324dc8 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveCampaignsBatch.json @@ -0,0 +1,145 @@ +{ + "name": "ArchiveCampaignsBatch", + "fully_qualified_name": "HubspotMarketingApi.ArchiveCampaignsBatch@0.1.0", + "description": "Delete a batch of marketing campaigns.\n\nUse this tool to delete multiple marketing campaigns in a single batch request (up to 50 campaigns). The response will indicate if the request was processed, but it won't specify the success of individual deletions.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_ids_to_archive", + "required": true, + "description": "A JSON array of campaign IDs to archive, with a maximum of 50 IDs per batch.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "campaign_ids_to_archive", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveMarketingForm.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveMarketingForm.json new file mode 100644 index 00000000..e26f7477 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ArchiveMarketingForm.json @@ -0,0 +1,109 @@ +{ + "name": "ArchiveMarketingForm", + "fully_qualified_name": "HubspotMarketingApi.ArchiveMarketingForm@0.1.0", + "description": "Archive a marketing form in HubSpot.\n\nUse this tool to archive a form in HubSpot Marketing, preventing new submissions. The form will be permanently deleted after 3 months.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "form_id", + "required": true, + "description": "The ID of the form to archive in HubSpot. This is required to process the archive request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the form to archive." + }, + "inferrable": true, + "http_endpoint_parameter_name": "formId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/forms/{formId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "forms" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/forms/{formId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "formId", + "tool_parameter_name": "form_id", + "description": "The ID of the form to archive.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the form to archive." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateAssetWithCampaign.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateAssetWithCampaign.json new file mode 100644 index 00000000..46430683 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateAssetWithCampaign.json @@ -0,0 +1,175 @@ +{ + "name": "AssociateAssetWithCampaign", + "fully_qualified_name": "HubspotMarketingApi.AssociateAssetWithCampaign@0.1.0", + "description": "Associate a specified asset with a HubSpot campaign.\n\nThis tool is used to link various asset types such as forms, lists, or emails with a specific HubSpot campaign. It's useful for managing and organizing marketing efforts across different platforms.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_unique_identifier", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID. Essential for associating an asset with the correct campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID" + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "asset_type", + "required": true, + "description": "Specify the asset type to associate with the campaign. Allowed values are FORM, OBJECT_LIST, and EXTERNAL_WEB_URL.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for association via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL" + }, + "inferrable": true, + "http_endpoint_parameter_name": "assetType" + }, + { + "name": "asset_id", + "required": true, + "description": "The unique identifier for the asset to be associated with a campaign. This should be provided as a string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset" + }, + "inferrable": true, + "http_endpoint_parameter_name": "assetId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_unique_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "assetType", + "tool_parameter_name": "asset_type", + "description": "The type of asset\nImportant: Currently, only the following asset types are available for association via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for association via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "assetId", + "tool_parameter_name": "asset_id", + "description": "Id of the asset", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateListWithMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateListWithMarketingEvent.json new file mode 100644 index 00000000..72181218 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/AssociateListWithMarketingEvent.json @@ -0,0 +1,142 @@ +{ + "name": "AssociateListWithMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.AssociateListWithMarketingEvent@0.1.0", + "description": "Associate a list with a marketing event by their IDs.\n\nThis tool associates a specific list with a marketing event using the marketing event ID and the list ID. It is used when you need to connect a list of contacts to a marketing event for tracking and management purposes.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot for association.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "marketingEventId" + }, + { + "name": "list_id", + "required": true, + "description": "The ILS ID of the list to associate with the marketing event.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_associateByMarketingEventId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "marketingEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal id of the marketing event in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The ILS ID of the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CancelMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CancelMarketingEvent.json new file mode 100644 index 00000000..f3c68cca --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CancelMarketingEvent.json @@ -0,0 +1,142 @@ +{ + "name": "CancelMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.CancelMarketingEvent@0.1.0", + "description": "Cancel a HubSpot marketing event.\n\nUse this tool to mark a specific HubSpot marketing event as cancelled by providing the external event ID.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external event application. Required to identify the event to be cancelled.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/cancel_cancel'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/cancel", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CloneHubspotEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CloneHubspotEmail.json new file mode 100644 index 00000000..43fed52e --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CloneHubspotEmail.json @@ -0,0 +1,175 @@ +{ + "name": "CloneHubspotEmail", + "fully_qualified_name": "HubspotMarketingApi.CloneHubspotEmail@0.1.0", + "description": "Clone an existing HubSpot marketing email.\n\nUse this tool to create a copy of an existing email in HubSpot's marketing platform. Ideal for reusing email templates and maintaining consistency in marketing campaigns.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "original_email_id", + "required": true, + "description": "The unique identifier of the email you wish to clone in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "cloned_email_name", + "required": false, + "description": "The new name for the cloned email. This should be a descriptive string to identify the copy.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "cloneName" + }, + { + "name": "email_language", + "required": false, + "description": "Specify the language for the cloned email, e.g., 'en' for English, 'fr' for French.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "language" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/clone'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/clone", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "original_email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "cloneName", + "tool_parameter_name": "cloned_email_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "language", + "tool_parameter_name": "email_language", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"cloneName\": {\n \"type\": \"string\"\n },\n \"language\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateAbTestEmailVariation.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateAbTestEmailVariation.json new file mode 100644 index 00000000..43ad10cd --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateAbTestEmailVariation.json @@ -0,0 +1,142 @@ +{ + "name": "CreateAbTestEmailVariation", + "fully_qualified_name": "HubspotMarketingApi.CreateAbTestEmailVariation@0.1.0", + "description": "Create a new variation for an email A/B test.\n\nUse this tool to generate a new variation of an existing email for conducting A/B tests in your marketing campaigns. This is useful for testing different email content to optimize engagement and performance.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "variation_name", + "required": true, + "description": "The name of the new email variation for the A/B test. Provide a descriptive name to easily identify this variation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "variationName" + }, + { + "name": "email_content_id", + "required": true, + "description": "ID of the email content to create a variation for A/B testing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the object to test." + }, + "inferrable": true, + "http_endpoint_parameter_name": "contentId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/ab-test/create-variation'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/ab-test/create-variation", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "variationName", + "tool_parameter_name": "variation_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "contentId", + "tool_parameter_name": "email_content_id", + "description": "ID of the object to test.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the object to test." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"contentId\",\n \"variationName\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"variationName\": {\n \"type\": \"string\"\n },\n \"contentId\": {\n \"type\": \"string\",\n \"description\": \"ID of the object to test.\"\n }\n },\n \"description\": \"Request body object for creating A/B tests.\",\n \"example\": {\n \"contentId\": \"7\",\n \"variantName\": \"AB Test - Number 7\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateCampaignSpend.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateCampaignSpend.json new file mode 100644 index 00000000..88b33402 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateCampaignSpend.json @@ -0,0 +1,241 @@ +{ + "name": "CreateCampaignSpend", + "fully_qualified_name": "HubspotMarketingApi.CreateCampaignSpend@0.1.0", + "description": "Create a new campaign spend item for a marketing campaign.\n\nThis tool creates a new spend item for a specified marketing campaign. It should be called when you need to add or track expenditures related to a specific campaign.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_id", + "required": true, + "description": "Unique identifier for the marketing campaign to add the spend item to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "spend_amount", + "required": true, + "description": "The monetary value of the spend item to be added to the campaign. This should be a numerical value representing the amount in the currency used by the campaign.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "amount" + }, + { + "name": "spend_item_name", + "required": true, + "description": "The name of the spend item to be created for the campaign. This should be a descriptive title or label for the expenditure.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "spend_item_order", + "required": true, + "description": "The order of the spend item in the campaign. Use an integer to specify the sequence.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "spend_description", + "required": false, + "description": "A brief description of the campaign spend item, detailing the nature or purpose of the expenditure.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/{campaignGuid}/spend'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_id", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "amount", + "tool_parameter_name": "spend_amount", + "description": "", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "spend_item_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "spend_description", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "spend_item_order", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaign.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaign.json new file mode 100644 index 00000000..635fefad --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaign.json @@ -0,0 +1,127 @@ +{ + "name": "CreateMarketingCampaign", + "fully_qualified_name": "HubspotMarketingApi.CreateMarketingCampaign@0.1.0", + "description": "Create a marketing campaign and retrieve its details.\n\nThis tool creates a marketing campaign using provided properties and returns the campaign object, including essential details like campaignGuid and created properties.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_properties", + "required": true, + "description": "A JSON object containing the details and properties of the campaign to be created, such as name, type, start date, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "campaign_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaignBatch.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaignBatch.json new file mode 100644 index 00000000..c7d54950 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingCampaignBatch.json @@ -0,0 +1,145 @@ +{ + "name": "CreateMarketingCampaignBatch", + "fully_qualified_name": "HubspotMarketingApi.CreateMarketingCampaignBatch@0.1.0", + "description": "Create a batch of marketing campaigns in HubSpot.\n\nThis tool is used to batch create up to 50 marketing campaigns in HubSpot Marketing. The campaigns in the response may not be in the same order as they were submitted in the request.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaigns_batch_data", + "required": true, + "description": "A JSON array containing up to 50 marketing campaign objects to be created in HubSpot. Each object should specify the necessary campaign details.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/batch/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "campaigns_batch_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEmail.json new file mode 100644 index 00000000..06c096b7 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEmail.json @@ -0,0 +1,4153 @@ +{ + "name": "CreateMarketingEmail", + "fully_qualified_name": "HubspotMarketingApi.CreateMarketingEmail@0.1.0", + "description": "Create a new marketing email in HubSpot.\n\nUse this tool to create a new marketing email through HubSpot's marketing platform, allowing for effective email campaigns.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_email_details", + "required": true, + "description": "JSON object containing all the details for the marketing email creation, including subject, content, scheduling, and testing options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "feedbackSurveyId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the feedback survey linked to the email." + }, + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "marketing_email_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "feedbackSurveyId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the feedback survey linked to the email." + }, + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"name\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"feedbackSurveyId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the feedback survey linked to the email.\"\n },\n \"rssData\": {\n \"type\": \"object\",\n \"properties\": {\n \"blogImageMaxWidth\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"blogEmailType\": {\n \"type\": \"string\"\n },\n \"hubspotBlogId\": {\n \"type\": \"string\"\n },\n \"rssEntryTemplate\": {\n \"type\": \"string\"\n },\n \"timing\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"useHeadlineAsSubject\": {\n \"type\": \"boolean\"\n },\n \"blogLayout\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"RSS related data if it is a blog or rss email.\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"The subject of the email.\"\n },\n \"testing\": {\n \"type\": \"object\",\n \"properties\": {\n \"isAbVariation\": {\n \"type\": \"boolean\"\n },\n \"abSamplingDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if the results are inconclusive after the test period, master or variant.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abSampleSizeDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if there are too few recipients to conduct an AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abStatus\": {\n \"type\": \"string\",\n \"description\": \"Status of the AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abTestPercentage\": {\n \"type\": \"integer\",\n \"description\": \"The size of your test group.\",\n \"format\": \"int32\"\n },\n \"hoursToWait\": {\n \"type\": \"integer\",\n \"description\": \"Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.\",\n \"format\": \"int32\"\n },\n \"testId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the AB test.\"\n },\n \"abSuccessMetric\": {\n \"type\": \"string\",\n \"description\": \"Metric to determine the version that will be sent to the remaining contacts.\",\n \"enum\": [\n \"CLICKS_BY_OPENS\",\n \"CLICKS_BY_DELIVERED\",\n \"OPENS_BY_DELIVERED\"\n ]\n }\n },\n \"description\": \"AB testing related data. This property is only returned for AB type emails.\"\n },\n \"publishDate\": {\n \"type\": \"string\",\n \"description\": \"The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.\",\n \"format\": \"date-time\"\n },\n \"language\": {\n \"type\": \"string\",\n \"enum\": [\n \"af\",\n \"af-na\",\n \"af-za\",\n \"agq\",\n \"agq-cm\",\n \"ak\",\n \"ak-gh\",\n \"am\",\n \"am-et\",\n \"ann\",\n \"ann-ng\",\n \"ar\",\n \"ar-001\",\n \"ar-ae\",\n \"ar-bh\",\n \"ar-dj\",\n \"ar-dz\",\n \"ar-eg\",\n \"ar-eh\",\n \"ar-er\",\n \"ar-il\",\n \"ar-iq\",\n \"ar-jo\",\n \"ar-km\",\n \"ar-kw\",\n \"ar-lb\",\n \"ar-ly\",\n \"ar-ma\",\n \"ar-mr\",\n \"ar-om\",\n \"ar-ps\",\n \"ar-qa\",\n \"ar-sa\",\n \"ar-sd\",\n \"ar-so\",\n \"ar-ss\",\n \"ar-sy\",\n \"ar-td\",\n \"ar-tn\",\n \"ar-ye\",\n \"as\",\n \"asa\",\n \"asa-tz\",\n \"ast\",\n \"ast-es\",\n \"as-in\",\n \"az\",\n \"az-az\",\n \"bas\",\n \"bas-cm\",\n \"be\",\n \"bem\",\n \"bem-zm\",\n \"bez\",\n \"bez-tz\",\n \"be-by\",\n \"bg\",\n \"bgc\",\n \"bgc-in\",\n \"bg-bg\",\n \"bho\",\n \"bho-in\",\n \"bm\",\n \"bm-ml\",\n \"bn\",\n \"bn-bd\",\n \"bn-in\",\n \"bo\",\n \"bo-cn\",\n \"bo-in\",\n \"br\",\n \"brx\",\n \"brx-in\",\n \"br-fr\",\n \"bs\",\n \"bs-ba\",\n \"ca\",\n \"ca-ad\",\n \"ca-es\",\n \"ca-fr\",\n \"ca-it\",\n \"ccp\",\n \"ccp-bd\",\n \"ccp-in\",\n \"ce\",\n \"ceb\",\n \"ceb-ph\",\n \"ce-ru\",\n \"cgg\",\n \"cgg-ug\",\n \"chr\",\n \"chr-us\",\n \"ckb\",\n \"ckb-iq\",\n \"ckb-ir\",\n \"cs\",\n \"cs-cz\",\n \"cu\",\n \"cu-ru\",\n \"cv\",\n \"cv-ru\",\n \"cy\",\n \"cy-gb\",\n \"da\",\n \"dav\",\n \"dav-ke\",\n \"da-dk\",\n \"da-gl\",\n \"de\",\n \"de-at\",\n \"de-be\",\n \"de-ch\",\n \"de-de\",\n \"de-gr\",\n \"de-it\",\n \"de-li\",\n \"de-lu\",\n \"dje\",\n \"dje-ne\",\n \"doi\",\n \"doi-in\",\n \"dsb\",\n \"dsb-de\",\n \"dua\",\n \"dua-cm\",\n \"dyo\",\n \"dyo-sn\",\n \"dz\",\n \"dz-bt\",\n \"ebu\",\n \"ebu-ke\",\n \"ee\",\n \"ee-gh\",\n \"ee-tg\",\n \"el\",\n \"el-cy\",\n \"el-gr\",\n \"en\",\n \"en-001\",\n \"en-150\",\n \"en-ae\",\n \"en-ag\",\n \"en-ai\",\n \"en-as\",\n \"en-at\",\n \"en-au\",\n \"en-bb\",\n \"en-be\",\n \"en-bi\",\n \"en-bm\",\n \"en-bs\",\n \"en-bw\",\n \"en-bz\",\n \"en-ca\",\n \"en-cc\",\n \"en-ch\",\n \"en-ck\",\n \"en-cm\",\n \"en-cn\",\n \"en-cx\",\n \"en-cy\",\n \"en-de\",\n \"en-dg\",\n \"en-dk\",\n \"en-dm\",\n \"en-ee\",\n \"en-eg\",\n \"en-er\",\n \"en-es\",\n \"en-fi\",\n \"en-fj\",\n \"en-fk\",\n \"en-fm\",\n \"en-fr\",\n \"en-gb\",\n \"en-gd\",\n \"en-gg\",\n \"en-gh\",\n \"en-gi\",\n \"en-gm\",\n \"en-gu\",\n \"en-gy\",\n \"en-hk\",\n \"en-ie\",\n \"en-il\",\n \"en-im\",\n \"en-in\",\n \"en-io\",\n \"en-je\",\n \"en-jm\",\n \"en-ke\",\n \"en-ki\",\n \"en-kn\",\n \"en-ky\",\n \"en-lc\",\n \"en-lr\",\n \"en-ls\",\n \"en-lu\",\n \"en-mg\",\n \"en-mh\",\n \"en-mo\",\n \"en-mp\",\n \"en-ms\",\n \"en-mt\",\n \"en-mu\",\n \"en-mv\",\n \"en-mw\",\n \"en-mx\",\n \"en-my\",\n \"en-na\",\n \"en-nf\",\n \"en-ng\",\n \"en-nl\",\n \"en-nr\",\n \"en-nu\",\n \"en-nz\",\n \"en-pg\",\n \"en-ph\",\n \"en-pk\",\n \"en-pn\",\n \"en-pr\",\n \"en-pw\",\n \"en-rw\",\n \"en-sb\",\n \"en-sc\",\n \"en-sd\",\n \"en-se\",\n \"en-sg\",\n \"en-sh\",\n \"en-si\",\n \"en-sl\",\n \"en-ss\",\n \"en-sx\",\n \"en-sz\",\n \"en-tc\",\n \"en-tk\",\n \"en-tn\",\n \"en-to\",\n \"en-tt\",\n \"en-tv\",\n \"en-tz\",\n \"en-ug\",\n \"en-um\",\n \"en-us\",\n \"en-vc\",\n \"en-vg\",\n \"en-vi\",\n \"en-vu\",\n \"en-ws\",\n \"en-za\",\n \"en-zm\",\n \"en-zw\",\n \"eo\",\n \"eo-001\",\n \"es\",\n \"es-419\",\n \"es-ar\",\n \"es-bo\",\n \"es-br\",\n \"es-bz\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-cu\",\n \"es-do\",\n \"es-ea\",\n \"es-ec\",\n \"es-es\",\n \"es-gq\",\n \"es-gt\",\n \"es-hn\",\n \"es-ic\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-pe\",\n \"es-ph\",\n \"es-pr\",\n \"es-py\",\n \"es-sv\",\n \"es-us\",\n \"es-uy\",\n \"es-ve\",\n \"et\",\n \"et-ee\",\n \"eu\",\n \"eu-es\",\n \"ewo\",\n \"ewo-cm\",\n \"fa\",\n \"fa-af\",\n \"fa-ir\",\n \"ff\",\n \"ff-bf\",\n \"ff-cm\",\n \"ff-gh\",\n \"ff-gm\",\n \"ff-gn\",\n \"ff-gw\",\n \"ff-lr\",\n \"ff-mr\",\n \"ff-ne\",\n \"ff-ng\",\n \"ff-sl\",\n \"ff-sn\",\n \"fi\",\n \"fil\",\n \"fil-ph\",\n \"fi-fi\",\n \"fo\",\n \"fo-dk\",\n \"fo-fo\",\n \"fr\",\n \"frr\",\n \"frr-de\",\n \"fr-be\",\n \"fr-bf\",\n \"fr-bi\",\n \"fr-bj\",\n \"fr-bl\",\n \"fr-ca\",\n \"fr-cd\",\n \"fr-cf\",\n \"fr-cg\",\n \"fr-ch\",\n \"fr-ci\",\n \"fr-cm\",\n \"fr-dj\",\n \"fr-dz\",\n \"fr-fr\",\n \"fr-ga\",\n \"fr-gf\",\n \"fr-gn\",\n \"fr-gp\",\n \"fr-gq\",\n \"fr-ht\",\n \"fr-km\",\n \"fr-lu\",\n \"fr-ma\",\n \"fr-mc\",\n \"fr-mf\",\n \"fr-mg\",\n \"fr-ml\",\n \"fr-mq\",\n \"fr-mr\",\n \"fr-mu\",\n \"fr-nc\",\n \"fr-ne\",\n \"fr-pf\",\n \"fr-pm\",\n \"fr-re\",\n \"fr-rw\",\n \"fr-sc\",\n \"fr-sn\",\n \"fr-sy\",\n \"fr-td\",\n \"fr-tg\",\n \"fr-tn\",\n \"fr-vu\",\n \"fr-wf\",\n \"fr-yt\",\n \"fur\",\n \"fur-it\",\n \"fy\",\n \"fy-nl\",\n \"ga\",\n \"ga-gb\",\n \"ga-ie\",\n \"gd\",\n \"gd-gb\",\n \"gl\",\n \"gl-es\",\n \"gsw\",\n \"gsw-ch\",\n \"gsw-fr\",\n \"gsw-li\",\n \"gu\",\n \"guz\",\n \"guz-ke\",\n \"gu-in\",\n \"gv\",\n \"gv-im\",\n \"ha\",\n \"haw\",\n \"haw-us\",\n \"ha-gh\",\n \"ha-ne\",\n \"ha-ng\",\n \"he\",\n \"he-il\",\n \"hi\",\n \"hi-in\",\n \"hr\",\n \"hr-ba\",\n \"hr-hr\",\n \"hsb\",\n \"hsb-de\",\n \"hu\",\n \"hu-hu\",\n \"hy\",\n \"hy-am\",\n \"ia\",\n \"ia-001\",\n \"id\",\n \"ig\",\n \"ig-ng\",\n \"ii\",\n \"ii-cn\",\n \"id-id\",\n \"is\",\n \"is-is\",\n \"it\",\n \"it-ch\",\n \"it-it\",\n \"it-sm\",\n \"it-va\",\n \"ja\",\n \"ja-jp\",\n \"jgo\",\n \"jgo-cm\",\n \"yi\",\n \"yi-001\",\n \"jmc\",\n \"jmc-tz\",\n \"jv\",\n \"jv-id\",\n \"ka\",\n \"kab\",\n \"kab-dz\",\n \"kam\",\n \"kam-ke\",\n \"ka-ge\",\n \"kde\",\n \"kde-tz\",\n \"kea\",\n \"kea-cv\",\n \"kgp\",\n \"kgp-br\",\n \"khq\",\n \"khq-ml\",\n \"ki\",\n \"ki-ke\",\n \"kk\",\n \"kkj\",\n \"kkj-cm\",\n \"kk-kz\",\n \"kl\",\n \"kln\",\n \"kln-ke\",\n \"kl-gl\",\n \"km\",\n \"km-kh\",\n \"kn\",\n \"kn-in\",\n \"ko\",\n \"kok\",\n \"kok-in\",\n \"ko-kp\",\n \"ko-kr\",\n \"ks\",\n \"ksb\",\n \"ksb-tz\",\n \"ksf\",\n \"ksf-cm\",\n \"ksh\",\n \"ksh-de\",\n \"ks-in\",\n \"ku\",\n \"ku-tr\",\n \"kw\",\n \"kw-gb\",\n \"ky\",\n \"ky-kg\",\n \"lag\",\n \"lag-tz\",\n \"lb\",\n \"lb-lu\",\n \"lg\",\n \"lg-ug\",\n \"lkt\",\n \"lkt-us\",\n \"ln\",\n \"ln-ao\",\n \"ln-cd\",\n \"ln-cf\",\n \"ln-cg\",\n \"lo\",\n \"lo-la\",\n \"lrc\",\n \"lrc-iq\",\n \"lrc-ir\",\n \"lt\",\n \"lt-lt\",\n \"lu\",\n \"luo\",\n \"luo-ke\",\n \"luy\",\n \"luy-ke\",\n \"lu-cd\",\n \"lv\",\n \"lv-lv\",\n \"mai\",\n \"mai-in\",\n \"mas\",\n \"mas-ke\",\n \"mas-tz\",\n \"mdf\",\n \"mdf-ru\",\n \"mer\",\n \"mer-ke\",\n \"mfe\",\n \"mfe-mu\",\n \"mg\",\n \"mgh\",\n \"mgh-mz\",\n \"mgo\",\n \"mgo-cm\",\n \"mg-mg\",\n \"mi\",\n \"mi-nz\",\n \"mk\",\n \"mk-mk\",\n \"ml\",\n \"ml-in\",\n \"mn\",\n \"mni\",\n \"mni-in\",\n \"mn-mn\",\n \"mr\",\n \"mr-in\",\n \"ms\",\n \"ms-bn\",\n \"ms-id\",\n \"ms-my\",\n \"ms-sg\",\n \"mt\",\n \"mt-mt\",\n \"mua\",\n \"mua-cm\",\n \"my\",\n \"my-mm\",\n \"mzn\",\n \"mzn-ir\",\n \"naq\",\n \"naq-na\",\n \"nb\",\n \"nb-no\",\n \"nb-sj\",\n \"nd\",\n \"nds\",\n \"nds-de\",\n \"nds-nl\",\n \"nd-zw\",\n \"ne\",\n \"ne-in\",\n \"ne-np\",\n \"nl\",\n \"nl-aw\",\n \"nl-be\",\n \"nl-bq\",\n \"nl-ch\",\n \"nl-cw\",\n \"nl-lu\",\n \"nl-nl\",\n \"nl-sr\",\n \"nl-sx\",\n \"nmg\",\n \"nmg-cm\",\n \"nn\",\n \"nnh\",\n \"nnh-cm\",\n \"nn-no\",\n \"no\",\n \"no-no\",\n \"nus\",\n \"nus-ss\",\n \"nyn\",\n \"nyn-ug\",\n \"oc\",\n \"oc-es\",\n \"oc-fr\",\n \"om\",\n \"om-et\",\n \"om-ke\",\n \"or\",\n \"or-in\",\n \"os\",\n \"os-ge\",\n \"os-ru\",\n \"pa\",\n \"pa-in\",\n \"pa-pk\",\n \"pcm\",\n \"pcm-ng\",\n \"pis\",\n \"pis-sb\",\n \"pl\",\n \"pl-pl\",\n \"prg\",\n \"prg-001\",\n \"ps\",\n \"ps-af\",\n \"ps-pk\",\n \"pt\",\n \"pt-ao\",\n \"pt-br\",\n \"pt-ch\",\n \"pt-cv\",\n \"pt-gq\",\n \"pt-gw\",\n \"pt-lu\",\n \"pt-mo\",\n \"pt-mz\",\n \"pt-pt\",\n \"pt-st\",\n \"pt-tl\",\n \"qu\",\n \"qu-bo\",\n \"qu-ec\",\n \"qu-pe\",\n \"raj\",\n \"raj-in\",\n \"rm\",\n \"rm-ch\",\n \"rn\",\n \"rn-bi\",\n \"ro\",\n \"rof\",\n \"rof-tz\",\n \"ro-md\",\n \"ro-ro\",\n \"ru\",\n \"ru-by\",\n \"ru-kg\",\n \"ru-kz\",\n \"ru-md\",\n \"ru-ru\",\n \"ru-ua\",\n \"rw\",\n \"rwk\",\n \"rwk-tz\",\n \"rw-rw\",\n \"sa\",\n \"sah\",\n \"sah-ru\",\n \"saq\",\n \"saq-ke\",\n \"sat\",\n \"sat-in\",\n \"sa-in\",\n \"sbp\",\n \"sbp-tz\",\n \"sc\",\n \"sc-it\",\n \"sd\",\n \"sd-in\",\n \"sd-pk\",\n \"se\",\n \"seh\",\n \"seh-mz\",\n \"ses\",\n \"ses-ml\",\n \"se-fi\",\n \"se-no\",\n \"se-se\",\n \"sg\",\n \"sg-cf\",\n \"shi\",\n \"shi-ma\",\n \"si\",\n \"si-lk\",\n \"sk\",\n \"sk-sk\",\n \"sl\",\n \"sl-si\",\n \"smn\",\n \"smn-fi\",\n \"sms\",\n \"sms-fi\",\n \"sn\",\n \"sn-zw\",\n \"so\",\n \"so-dj\",\n \"so-et\",\n \"so-ke\",\n \"so-so\",\n \"sq\",\n \"sq-al\",\n \"sq-mk\",\n \"sq-xk\",\n \"sr\",\n \"sr-ba\",\n \"sr-cs\",\n \"sr-me\",\n \"sr-rs\",\n \"sr-xk\",\n \"su\",\n \"su-id\",\n \"sv\",\n \"sv-ax\",\n \"sv-fi\",\n \"sv-se\",\n \"sw\",\n \"sw-cd\",\n \"sw-ke\",\n \"sw-tz\",\n \"sw-ug\",\n \"sy\",\n \"ta\",\n \"ta-in\",\n \"ta-lk\",\n \"ta-my\",\n \"ta-sg\",\n \"te\",\n \"teo\",\n \"teo-ke\",\n \"teo-ug\",\n \"te-in\",\n \"tg\",\n \"tg-tj\",\n \"th\",\n \"th-th\",\n \"ti\",\n \"ti-er\",\n \"ti-et\",\n \"tk\",\n \"tk-tm\",\n \"tl\",\n \"to\",\n \"tok\",\n \"tok-001\",\n \"to-to\",\n \"tr\",\n \"tr-cy\",\n \"tr-tr\",\n \"tt\",\n \"tt-ru\",\n \"twq\",\n \"twq-ne\",\n \"tzm\",\n \"tzm-ma\",\n \"ug\",\n \"ug-cn\",\n \"uk\",\n \"uk-ua\",\n \"ur\",\n \"ur-in\",\n \"ur-pk\",\n \"uz\",\n \"uz-af\",\n \"uz-uz\",\n \"vai\",\n \"vai-lr\",\n \"vi\",\n \"vi-vn\",\n \"vo\",\n \"vo-001\",\n \"vun\",\n \"vun-tz\",\n \"wae\",\n \"wae-ch\",\n \"wo\",\n \"wo-sn\",\n \"xh\",\n \"xh-za\",\n \"xog\",\n \"xog-ug\",\n \"yav\",\n \"yav-cm\",\n \"yo\",\n \"yo-bj\",\n \"yo-ng\",\n \"yrl\",\n \"yrl-br\",\n \"yrl-co\",\n \"yrl-ve\",\n \"yue\",\n \"yue-cn\",\n \"yue-hk\",\n \"zgh\",\n \"zgh-ma\",\n \"zh\",\n \"zh-cn\",\n \"zh-hans\",\n \"zh-hant\",\n \"zh-hk\",\n \"zh-mo\",\n \"zh-sg\",\n \"zh-tw\",\n \"zu\",\n \"zu-za\"\n ]\n },\n \"businessUnitId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"content\": {\n \"type\": \"object\",\n \"properties\": {\n \"smartFields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"An email field whose value is controlled by one or more smart rules.\"\n }\n },\n \"themeSettingsValues\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"flexAreas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"widgets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"plainTextVersion\": {\n \"type\": \"string\"\n },\n \"templatePath\": {\n \"type\": \"string\"\n },\n \"widgetContainers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"styleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"backgroundImage\": {\n \"type\": \"string\"\n },\n \"backgroundImageType\": {\n \"type\": \"string\"\n },\n \"bodyColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderWidth\": {\n \"type\": \"number\"\n },\n \"bodyBorderColorChoice\": {\n \"type\": \"string\"\n },\n \"primaryFont\": {\n \"type\": \"string\"\n },\n \"primaryFontColor\": {\n \"type\": \"string\"\n },\n \"primaryAccentColor\": {\n \"type\": \"string\"\n },\n \"primaryFontSize\": {\n \"type\": \"number\"\n },\n \"primaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"secondaryFont\": {\n \"type\": \"string\"\n },\n \"secondaryFontColor\": {\n \"type\": \"string\"\n },\n \"secondaryAccentColor\": {\n \"type\": \"string\"\n },\n \"secondaryFontSize\": {\n \"type\": \"number\"\n },\n \"secondaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"headingOneFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"headingTwoFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"linksFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"colorPickerFavorite1\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite2\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite3\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite4\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite5\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite6\": {\n \"type\": \"string\"\n },\n \"emailBodyPadding\": {\n \"type\": \"string\"\n },\n \"emailBodyWidth\": {\n \"type\": \"string\"\n },\n \"buttonStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"cornerRadius\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"fontStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"dividerStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"height\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"lineType\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"description\": \"Data structure representing the content of the email.\"\n },\n \"webversion\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"redirectToPageId\": {\n \"type\": \"string\"\n },\n \"isPageRedirected\": {\n \"type\": \"boolean\"\n },\n \"redirectToUrl\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"pageExpiryEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Determines if the email is archived or not.\"\n },\n \"subscriptionDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"officeLocationId\": {\n \"type\": \"string\",\n \"description\": \"ID of the selected office location.\"\n },\n \"subscriptionName\": {\n \"type\": \"string\"\n },\n \"preferencesGroupId\": {\n \"type\": \"string\"\n },\n \"subscriptionId\": {\n \"type\": \"string\",\n \"description\": \"ID of the subscription.\"\n }\n },\n \"description\": \"Data structure representing the subscription fields of the email.\"\n },\n \"activeDomain\": {\n \"type\": \"string\",\n \"description\": \"The active domain of the email.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the email, as displayed on the email dashboard.\"\n },\n \"campaign\": {\n \"type\": \"string\",\n \"description\": \"The ID of the campaign this email is associated to.\"\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"customReplyTo\": {\n \"type\": \"string\",\n \"description\": \"The reply to recipients will see.\"\n },\n \"fromName\": {\n \"type\": \"string\",\n \"description\": \"The name recipients will see.\"\n },\n \"replyTo\": {\n \"type\": \"string\",\n \"description\": \"The from address and reply to email address (if no customReplyTo defined) recipients will see.\"\n }\n },\n \"description\": \"Data structure representing the from fields on the email.\"\n },\n \"jitterSendTime\": {\n \"type\": \"boolean\"\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"The email state.\",\n \"enum\": [\n \"AUTOMATED\",\n \"AUTOMATED_DRAFT\",\n \"AUTOMATED_SENDING\",\n \"AUTOMATED_FOR_FORM\",\n \"AUTOMATED_FOR_FORM_BUFFER\",\n \"AUTOMATED_FOR_FORM_DRAFT\",\n \"AUTOMATED_FOR_FORM_LEGACY\",\n \"BLOG_EMAIL_DRAFT\",\n \"BLOG_EMAIL_PUBLISHED\",\n \"DRAFT\",\n \"DRAFT_AB\",\n \"DRAFT_AB_VARIANT\",\n \"ERROR\",\n \"LOSER_AB_VARIANT\",\n \"PAGE_STUB\",\n \"PRE_PROCESSING\",\n \"PROCESSING\",\n \"PUBLISHED\",\n \"PUBLISHED_AB\",\n \"PUBLISHED_AB_VARIANT\",\n \"PUBLISHED_OR_SCHEDULED\",\n \"RSS_TO_EMAIL_DRAFT\",\n \"RSS_TO_EMAIL_PUBLISHED\",\n \"SCHEDULED\",\n \"SCHEDULED_AB\",\n \"SCHEDULED_OR_PUBLISHED\",\n \"AUTOMATED_AB\",\n \"AUTOMATED_AB_VARIANT\",\n \"AUTOMATED_DRAFT_AB\",\n \"AUTOMATED_DRAFT_ABVARIANT\",\n \"AUTOMATED_LOSER_ABVARIANT\",\n \"AGENT_GENERATED\"\n ]\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"contactIlsLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"limitSendFrequency\": {\n \"type\": \"boolean\"\n },\n \"suppressGraymail\": {\n \"type\": \"boolean\"\n },\n \"contactIds\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"contactLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n }\n },\n \"description\": \"Data structure representing the to fields of the email.\"\n },\n \"subcategory\": {\n \"type\": \"string\",\n \"description\": \"The email subcategory.\",\n \"enum\": [\n \"ab_master\",\n \"ab_variant\",\n \"ab_loser_variant\",\n \"page_stub\",\n \"landing_page\",\n \"site_page\",\n \"legacy_page\",\n \"ab_master_site_page\",\n \"ab_variant_site_page\",\n \"ab_loser_variant_site_page\",\n \"performable_landing_page\",\n \"performable_landing_page_cutover\",\n \"staged_page\",\n \"automated\",\n \"automated_for_deal\",\n \"automated_for_form\",\n \"automated_for_form_legacy\",\n \"automated_for_form_buffer\",\n \"automated_for_form_draft\",\n \"rss_to_email\",\n \"rss_to_email_child\",\n \"blog_email\",\n \"blog_email_child\",\n \"optin_email\",\n \"optin_followup_email\",\n \"batch\",\n \"resubscribe_email\",\n \"unsubscribe_confirmation_email\",\n \"resubscribe_confirmation_email\",\n \"single_send_api\",\n \"marketing_single_send_api\",\n \"smtp_token\",\n \"localtime\",\n \"automated_for_ticket\",\n \"automated_for_leadflow\",\n \"automated_for_feedback_ces\",\n \"automated_for_feedback_nps\",\n \"automated_for_feedback_custom\",\n \"membership_registration\",\n \"membership_password_saved\",\n \"membership_password_reset\",\n \"membership_otp_login\",\n \"membership_passwordless_auth\",\n \"membership_email_verification\",\n \"membership_registration_follow_up\",\n \"membership_verification\",\n \"membership_follow_up\",\n \"ticket_closed_kickback_email\",\n \"ticket_opened_kickback_email\",\n \"automated_for_custom_survey\",\n \"discardable_stub\",\n \"normal_blog_post\",\n \"legacy_blog_post\",\n \"imported_blog_post\",\n \"automated_ab_master\",\n \"automated_ab_variant\",\n \"web_interactive\",\n \"portal_content\",\n \"page_instance_layout\",\n \"kb_article_instance_layout\",\n \"kb_listing\",\n \"kb_search_results\",\n \"kb_support_form\",\n \"kb_404_page\",\n \"case_study\",\n \"case_study_listing\",\n \"case_study_instance_layout\",\n \"scp_static_page\",\n \"scp_instance_layout_page\",\n \"podcast_instance_layout\",\n \"podcast_listing\",\n \"blog_article_instance_layout\",\n \"blog_article_listing\",\n \"blog_author_detail\",\n \"UNKNOWN\"\n ]\n },\n \"sendOnPublish\": {\n \"type\": \"boolean\",\n \"description\": \"Determines whether the email will be sent immediately on publish.\"\n }\n },\n \"description\": \"Properties of a marketing email you can set when creating a marketing email.\",\n \"example\": {\n \"activeDomain\": \"test.hs-sites.com\",\n \"archived\": false,\n \"campaign\": \"1b7f51a6-33c1-44d6-ba28-fe81f655dced\",\n \"content\": {\n \"flexAreas\": {\n \"main\": {\n \"boxed\": false,\n \"isSingleColumnFullWidth\": false,\n \"sections\": [\n {\n \"columns\": [\n {\n \"id\": \"column_1606761806181_0\",\n \"widgets\": [\n \"module_160676180617911\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section_1606761806181\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-0-1\",\n \"widgets\": [\n \"module-0-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-0\",\n \"style\": {\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"40px\",\n \"paddingTop\": \"40px\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-1-1\",\n \"widgets\": [\n \"module-1-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-1\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"0px\",\n \"paddingTop\": \"0px\"\n }\n }\n ]\n }\n },\n \"plainTextVersion\": \"This is custom! View in browser ({{view_as_page_url}})\\n\\nHello {{ contact.firstname }},\\n\\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.\\n\\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\\n\\nLink text\\n\\nNow it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\\n\\nAll the best,\\n\\nYour full name\\n\\nYour job title\\n\\nOther contact information\\n\\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\\n\\nUnsubscribe ({{unsubscribe_link_all}})\\n\\nManage preferences ({{unsubscribe_link}})\",\n \"styleSettings\": {},\n \"widgets\": {\n \"module-0-1-1\": {\n \"body\": {\n \"css_class\": \"dnd-module\",\n \"html\": \"

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

\",\n \"i18nKey\": \"richText.plainText\",\n \"path\": \"@hubspot/rich_text\",\n \"schema_version\": 2\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-0-1-1\",\n \"module_id\": 1155639,\n \"name\": \"module-0-1-1\",\n \"order\": 2,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module-1-1-1\": {\n \"body\": {\n \"align\": \"center\",\n \"css_class\": \"dnd-module\",\n \"font\": {\n \"color\": \"#23496d\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n }\n },\n \"link_font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Helvetica,Arial,sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"path\": \"@hubspot/email_footer\",\n \"schema_version\": 2,\n \"unsubscribe_link_type\": \"both\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-1-1-1\",\n \"module_id\": 2869621,\n \"name\": \"module-1-1-1\",\n \"order\": 3,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module_160676180617911\": {\n \"body\": {\n \"font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"hs_enable_module_padding\": false,\n \"hs_wrapper_css\": {}\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module_160676180617911\",\n \"module_id\": 2794854,\n \"name\": \"module_160676180617911\",\n \"styles\": {},\n \"type\": \"module\"\n },\n \"preview_text\": {\n \"body\": {\n \"value\": \"\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"preview_text\",\n \"label\": \"Preview Text This will be used as the preview text that displays in some email clients\",\n \"name\": \"preview_text\",\n \"order\": 0,\n \"styles\": {},\n \"type\": \"text\"\n }\n }\n },\n \"createdAt\": \"2020-11-30T18:43:17.136Z\",\n \"createdById\": 3739732,\n \"from\": {\n \"fromName\": \"Bruce Wayne\",\n \"replyTo\": \"test@hubspot.com\"\n },\n \"name\": \"My subject\",\n \"publishDate\": \"2023-11-30T18:44:20.387Z\",\n \"sendOnPublish\": true,\n \"state\": \"DRAFT\",\n \"subcategory\": \"batch\",\n \"subject\": \"My subject\",\n \"subscriptionDetails\": {\n \"officeLocationId\": \"5449392956\"\n },\n \"to\": {\n \"contactIds\": {},\n \"contactIlsLists\": {\n \"exclude\": [\n 1\n ],\n \"include\": [\n 5\n ]\n },\n \"suppressGraymail\": true\n },\n \"webversion\": {\n \"expiresAt\": \"2020-11-30T18:44:20.387Z\",\n \"metaDescription\": \"\",\n \"redirectToPageId\": 0,\n \"redirectToUrl\": \"http://www.example.org\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEvent.json new file mode 100644 index 00000000..8dc94bbe --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingEvent.json @@ -0,0 +1,817 @@ +{ + "name": "CreateMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.CreateMarketingEvent@0.1.0", + "description": "Create a new marketing event in HubSpot.\n\nThis tool is used to create a new marketing event within the HubSpot platform. It should be called when a new event needs to be added to HubSpot's marketing event system.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_details", + "required": true, + "description": "A JSON object containing all the details for the marketing event, including start and end times, event name, description, organizer, external event IDs, and custom properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"eventName\",\n \"eventOrganizer\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingForm.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingForm.json new file mode 100644 index 00000000..329e125b --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateMarketingForm.json @@ -0,0 +1,109 @@ +{ + "name": "CreateMarketingForm", + "fully_qualified_name": "HubspotMarketingApi.CreateMarketingForm@0.1.0", + "description": "Create a new marketing form in HubSpot.\n\nThis tool is used to add a new form to HubSpot's marketing systems. It should be called whenever you need to create a new form for collecting marketing data.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "form_details", + "required": true, + "description": "JSON object containing the details and fields for the new HubSpot marketing form. Include title, fields, and any necessary properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/forms/_create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "forms" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/forms/", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "form_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"properties\": {},\n \"oneOf\": [\n {\n \"properties\": {},\n \"allOf\": [\n {\n \"$ref\": \"#/components/schemas/FormDefinitionCreateRequestBase\",\n \"has_circular_reference\": true\n },\n {\n \"required\": [\n \"archived\",\n \"configuration\",\n \"createdAt\",\n \"displayOptions\",\n \"fieldGroups\",\n \"formType\",\n \"legalConsentOptions\",\n \"name\",\n \"updatedAt\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"formType\": {\n \"type\": \"string\",\n \"default\": \"hubspot\",\n \"enum\": [\n \"hubspot\"\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"archived\": {\n \"type\": \"boolean\"\n },\n \"archivedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"fieldGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"fields\",\n \"groupType\",\n \"richTextType\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"groupType\": {\n \"type\": \"string\",\n \"enum\": [\n \"default_group\",\n \"progressive\",\n \"queued\"\n ]\n },\n \"richTextType\": {\n \"type\": \"string\",\n \"description\": \"The type of rich text included. The default value is text.\",\n \"enum\": [\n \"text\",\n \"image\"\n ]\n },\n \"richText\": {\n \"type\": \"string\",\n \"description\": \"A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields.\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"The form fields included in the group\",\n \"items\": {\n \"oneOf\": [\n {\n \"title\": \"email\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"required\": [\n \"dependentCondition\",\n \"dependentField\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"dependentCondition\": {\n \"required\": [\n \"operator\",\n \"rangeEnd\",\n \"rangeStart\",\n \"value\",\n \"values\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"rangeStart\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"contains\",\n \"doesnt_contain\",\n \"str_starts_with\",\n \"str_ends_with\",\n \"lt\",\n \"lte\",\n \"gt\",\n \"gte\",\n \"between\",\n \"not_between\",\n \"within_time_reverse\",\n \"within_time\",\n \"set_any\",\n \"set_not_any\",\n \"set_all\",\n \"set_not_all\",\n \"set_eq\",\n \"set_neq\",\n \"is_not_empty\"\n ]\n },\n \"rangeEnd\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"A condition based on customer input\"\n },\n \"dependentField\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/EmailField\",\n \"has_circular_reference\": true\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"description\": \"A form field that will be displayed based on what the customer entered in another field.\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"email\",\n \"enum\": [\n \"email\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"blockedEmailDomains\",\n \"useDefaultBlockList\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"useDefaultBlockList\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to block the free email providers.\"\n },\n \"blockedEmailDomains\": {\n \"type\": \"array\",\n \"description\": \"A list of email domains to block.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Describes how an email address should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting an email address.\"\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n }\n },\n \"description\": \"A collection of up to three form fields usually displayed in a row.\"\n }\n },\n \"configuration\": {\n \"required\": [\n \"allowLinkToResetKnownValues\",\n \"archivable\",\n \"cloneable\",\n \"createNewContactForNewEmail\",\n \"editable\",\n \"language\",\n \"notifyContactOwner\",\n \"notifyRecipients\",\n \"postSubmitAction\",\n \"prePopulateKnownValues\",\n \"recaptchaEnabled\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createNewContactForNewEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to create a new contact when a form is submitted with an email address that doesn\\u2019t match any in your existing contacts records.\"\n },\n \"editable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be edited.\"\n },\n \"allowLinkToResetKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission.\"\n },\n \"lifecycleStages\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectTypeId\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"The objectTypeId for both contact and company\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal name of the contact's lifecycle stage set when submitting a form\"\n }\n }\n }\n },\n \"postSubmitAction\": {\n \"required\": [\n \"type\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The action to take after submit. The default action is displaying a thank you message.\",\n \"enum\": [\n \"thank_you\",\n \"redirect_url\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The thank you text or the page to redirect to.\"\n }\n },\n \"description\": \"What should happen after the customer submits the form.\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"The language of the form.\",\n \"enum\": [\n \"af\",\n \"ar-eg\",\n \"bg\",\n \"bn\",\n \"ca-es\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en\",\n \"es\",\n \"es-mx\",\n \"fi\",\n \"fr\",\n \"fr-ca\",\n \"he-il\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"ms\",\n \"nl\",\n \"no-no\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sv\",\n \"th\",\n \"tl\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-cn\",\n \"zh-hk\",\n \"zh-tw\"\n ]\n },\n \"prePopulateKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether contact fields should pre-populate with known information when a contact returns to your site.\"\n },\n \"cloneable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be cloned.\"\n },\n \"notifyContactOwner\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to send a notification email to the contact owner when a submission is received.\"\n },\n \"recaptchaEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether CAPTCHA (spam prevention) is enabled.\"\n },\n \"archivable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be archived.\"\n },\n \"notifyRecipients\": {\n \"type\": \"array\",\n \"description\": \"The list of user IDs to receive a notification email when a submission is received.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"displayOptions\": {\n \"required\": [\n \"renderRawHtml\",\n \"style\",\n \"submitButtonText\",\n \"theme\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"renderRawHtml\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form will render as raw HTML as opposed to inside an iFrame.\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"description\": \"The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.\",\n \"enum\": [\n \"default_style\",\n \"canvas\",\n \"linear\",\n \"round\",\n \"sharp\",\n \"legacy\"\n ]\n },\n \"submitButtonText\": {\n \"type\": \"string\",\n \"description\": \"The text displayed on the form submit button.\"\n },\n \"style\": {\n \"required\": [\n \"backgroundWidth\",\n \"fontFamily\",\n \"helpTextColor\",\n \"helpTextSize\",\n \"labelTextColor\",\n \"labelTextSize\",\n \"legalConsentTextColor\",\n \"legalConsentTextSize\",\n \"submitAlignment\",\n \"submitColor\",\n \"submitFontColor\",\n \"submitSize\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"labelTextSize\": {\n \"type\": \"string\"\n },\n \"legalConsentTextColor\": {\n \"type\": \"string\"\n },\n \"fontFamily\": {\n \"type\": \"string\"\n },\n \"legalConsentTextSize\": {\n \"type\": \"string\"\n },\n \"backgroundWidth\": {\n \"type\": \"string\"\n },\n \"helpTextSize\": {\n \"type\": \"string\"\n },\n \"submitFontColor\": {\n \"type\": \"string\"\n },\n \"labelTextColor\": {\n \"type\": \"string\"\n },\n \"submitAlignment\": {\n \"type\": \"string\",\n \"enum\": [\n \"left\",\n \"right\",\n \"center\"\n ]\n },\n \"submitSize\": {\n \"type\": \"string\"\n },\n \"helpTextColor\": {\n \"type\": \"string\"\n },\n \"submitColor\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Styling options for the form\"\n }\n },\n \"description\": \"Options for styling the form.\"\n },\n \"legalConsentOptions\": {\n \"oneOf\": [\n {\n \"title\": \"none\",\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"default\": \"none\",\n \"enum\": [\n \"none\"\n ]\n }\n }\n },\n {\n \"title\": \"legitimate_interest\",\n \"required\": [\n \"lawfulBasis\",\n \"privacyText\",\n \"subscriptionTypeIds\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"lawfulBasis\": {\n \"type\": \"string\",\n \"enum\": [\n \"lead\",\n \"client\",\n \"other\"\n ]\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"legitimate_interest\",\n \"enum\": [\n \"legitimate_interest\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"explicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"consentToProcessCheckboxLabel\": {\n \"type\": \"string\"\n },\n \"consentToProcessFooterText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"explicit_consent_to_process\",\n \"enum\": [\n \"explicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"implicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"implicit_consent_to_process\",\n \"enum\": [\n \"implicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"x-hubspot-sub-type-impl\": true\n }\n ]\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateSmtpApiToken.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateSmtpApiToken.json new file mode 100644 index 00000000..17b0706f --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/CreateSmtpApiToken.json @@ -0,0 +1,142 @@ +{ + "name": "CreateSmtpApiToken", + "fully_qualified_name": "HubspotMarketingApi.CreateSmtpApiToken@0.1.0", + "description": "Creates a SMTP API token for transaction emails.\n\nThis tool is used to create a new SMTP API token for sending transactional emails through HubSpot's marketing service. It should be called when a new token is needed for email operations.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_name", + "required": true, + "description": "The name of the campaign associated with the SMTP API token.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A name for the campaign tied to the SMTP API token." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignName" + }, + { + "name": "create_contact_for_recipients", + "required": true, + "description": "Indicates whether a contact should be created for email recipients. Set to true to create a contact.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates whether a contact should be created for email recipients." + }, + "inferrable": true, + "http_endpoint_parameter_name": "createContact" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/transactional/smtp-tokens_createToken'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/transactional/smtp-tokens", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "createContact", + "tool_parameter_name": "create_contact_for_recipients", + "description": "Indicates whether a contact should be created for email recipients.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates whether a contact should be created for email recipients." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "campaignName", + "tool_parameter_name": "campaign_name", + "description": "A name for the campaign tied to the SMTP API token.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A name for the campaign tied to the SMTP API token." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"A request object that includes the campaign name tied to the token and whether contacts should be created for email recipients.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"campaignName\",\n \"createContact\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createContact\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates whether a contact should be created for email recipients.\"\n },\n \"campaignName\": {\n \"type\": \"string\",\n \"description\": \"A name for the campaign tied to the SMTP API token.\"\n }\n },\n \"description\": \"A request object to create a SMTP API token\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteCampaignBudgetItem.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteCampaignBudgetItem.json new file mode 100644 index 00000000..17714b43 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteCampaignBudgetItem.json @@ -0,0 +1,142 @@ +{ + "name": "DeleteCampaignBudgetItem", + "fully_qualified_name": "HubspotMarketingApi.DeleteCampaignBudgetItem@0.1.0", + "description": "Delete a specific campaign budget item by ID.\n\nUse this tool to delete a specific budget item from a campaign using the campaignGuid and budgetId. Useful for managing or updating campaign budgets.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "Unique identifier for the campaign to delete the budget item from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "budget_item_id", + "required": true, + "description": "Unique identifier for the budget item to be deleted.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "budgetId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "budgetId", + "tool_parameter_name": "budget_item_id", + "description": "Unique identifier for the budget item.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingCampaign.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingCampaign.json new file mode 100644 index 00000000..c980b841 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingCampaign.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteMarketingCampaign", + "fully_qualified_name": "HubspotMarketingApi.DeleteMarketingCampaign@0.1.0", + "description": "Delete a specified marketing campaign.\n\nUse this tool to delete a marketing campaign from the system by providing the campaign's GUID. A 204 No Content response is returned, indicating the request was processed, regardless of whether the campaign existed.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEmail.json new file mode 100644 index 00000000..c2043133 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEmail.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteMarketingEmail", + "fully_qualified_name": "HubspotMarketingApi.DeleteMarketingEmail@0.1.0", + "description": "Delete an existing marketing email by ID.\n\nUse this tool to remove a specific marketing email from the HubSpot system by providing its unique email ID. This is useful for managing email lists and ensuring outdated or incorrect emails are removed.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique ID of the marketing email to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/emails/{emailId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvent.json new file mode 100644 index 00000000..08fe553e --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvent.json @@ -0,0 +1,142 @@ +{ + "name": "DeleteMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.DeleteMarketingEvent@0.1.0", + "description": "Deletes a specified HubSpot marketing event.\n\nUse this tool to delete an existing marketing event in HubSpot by specifying the externalEventId. The event must have been created by the same app requesting the deletion.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with the marketing event to be deleted in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "required": true, + "description": "The ID of the marketing event in the external event application to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/marketing-events/events/{externalEventId}_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvents.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvents.json new file mode 100644 index 00000000..42352792 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteMarketingEvents.json @@ -0,0 +1,145 @@ +{ + "name": "DeleteMarketingEvents", + "fully_qualified_name": "HubspotMarketingApi.DeleteMarketingEvents@0.1.0", + "description": "Delete multiple marketing events by object ID.\n\nThis tool deletes specified marketing events based on their object IDs. Use it to clean up events from the portal. It returns a status indicating whether all or only some events were successfully deleted.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_object_ids", + "required": true, + "description": "A list of object IDs representing the marketing events to be deleted.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/batch/archive_archiveByObjectId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/batch/archive", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_object_ids", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteSmtpToken.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteSmtpToken.json new file mode 100644 index 00000000..16e14f37 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DeleteSmtpToken.json @@ -0,0 +1,109 @@ +{ + "name": "DeleteSmtpToken", + "fully_qualified_name": "HubspotMarketingApi.DeleteSmtpToken@0.1.0", + "description": "Delete an SMTP token by ID in HubSpot Marketing.\n\nUse this tool to delete a specific SMTP token from HubSpot Marketing by providing the token ID. This is useful for managing and revoking access tokens when they are no longer needed or for security reasons.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "smtp_token_id", + "required": true, + "description": "The unique identifier of the SMTP token to be deleted, provided during token creation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tokenId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/transactional/smtp-tokens/{tokenId}_archiveToken'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/transactional/smtp-tokens/{tokenId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "tokenId", + "tool_parameter_name": "smtp_token_id", + "description": "Identifier generated when a token is created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateCampaignAsset.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateCampaignAsset.json new file mode 100644 index 00000000..2fc5ae64 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateCampaignAsset.json @@ -0,0 +1,175 @@ +{ + "name": "DisassociateCampaignAsset", + "fully_qualified_name": "HubspotMarketingApi.DisassociateCampaignAsset@0.1.0", + "description": "Disassociate an asset from a HubSpot marketing campaign.\n\nUse this tool to remove a specified asset from a marketing campaign. Supported asset types include Forms, Static lists, and External website pages.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_unique_identifier", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "asset_type", + "required": true, + "description": "Specify the type of asset to disassociate, limited to FORM, OBJECT_LIST, or EXTERNAL_WEB_URL.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for disassociation via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL" + }, + "inferrable": true, + "http_endpoint_parameter_name": "assetType" + }, + { + "name": "asset_id", + "required": true, + "description": "Unique identifier for the asset to be disassociated from the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset" + }, + "inferrable": true, + "http_endpoint_parameter_name": "assetId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}/{assetId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_unique_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "assetType", + "tool_parameter_name": "asset_type", + "description": "The type of asset\nImportant: Currently, only the following asset types are available for disassociation via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset\nImportant: Currently, only the following asset types are available for disassociation via the API: FORM, OBJECT_LIST, EXTERNAL_WEB_URL" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "assetId", + "tool_parameter_name": "asset_id", + "description": "Id of the asset", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Id of the asset" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateListFromMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateListFromMarketingEvent.json new file mode 100644 index 00000000..98afbf8b --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateListFromMarketingEvent.json @@ -0,0 +1,142 @@ +{ + "name": "DisassociateListFromMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.DisassociateListFromMarketingEvent@0.1.0", + "description": "Disassociate a list from a marketing event using event and list IDs.\n\nUse this tool to remove the association between a specific list and a marketing event by providing the marketing event ID and the list ID. It ensures that the list is no longer linked to the specified marketing event.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot to disassociate the list from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "marketingEventId" + }, + { + "name": "list_identifier", + "required": true, + "description": "The ILS ID of the list to be disassociated from the marketing event.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}_disassociateByMarketingEventId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "marketingEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal id of the marketing event in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_identifier", + "description": "The ILS ID of the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateMarketingEventList.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateMarketingEventList.json new file mode 100644 index 00000000..10d4cc72 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/DisassociateMarketingEventList.json @@ -0,0 +1,175 @@ +{ + "name": "DisassociateMarketingEventList", + "fully_qualified_name": "HubspotMarketingApi.DisassociateMarketingEventList@0.1.0", + "description": "Disassociate a list from a HubSpot marketing event using IDs.\n\nUse this tool to disassociate a list from a specific marketing event in HubSpot by providing the external account ID, external event ID, and list ID. This action is useful when you need to update or manage your marketing event associations.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID linked to the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "required": true, + "description": "ID of the marketing event in the external application to be disassociated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "list_id", + "required": true, + "description": "The ILS ID of the list to be disassociated from the marketing event.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_disassociateByExternalAccountAndEventIds'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "list_id", + "description": "The ILS ID of the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchCampaignContactIds.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchCampaignContactIds.json new file mode 100644 index 00000000..4a51f766 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchCampaignContactIds.json @@ -0,0 +1,274 @@ +{ + "name": "FetchCampaignContactIds", + "fully_qualified_name": "HubspotMarketingApi.FetchCampaignContactIds@0.1.0", + "description": "Fetch contact IDs for a specific campaign and contact type.\n\nUse this tool to obtain the contact IDs associated with a particular marketing campaign and specified contact type in HubSpot. It is useful for analyzing campaign reach and engagement with specific contact demographics.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_identifier", + "required": true, + "description": "Unique identifier for the campaign formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "contact_type_filter", + "required": true, + "description": "Specifies the type of metric for filtering contacts. Options: contactFirstTouch, contactLastTouch, influencedContacts.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of metric to filter the influenced contacts. Allowed values: contactFirstTouch, contactLastTouch, influencedContacts" + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactType" + }, + { + "name": "start_date", + "required": false, + "description": "The start date for the report data in YYYY-MM-DD format. Default is 2006-01-01.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDate" + }, + { + "name": "report_end_date", + "required": false, + "description": "The end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDate" + }, + { + "name": "contact_fetch_limit", + "required": false, + "description": "Specify the maximum number of contact IDs to retrieve, with a default of 100.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Limit for the number of contacts to fetch\nDefault: 100" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "pagination_cursor", + "required": false, + "description": "A string cursor for pagination to start results after the given point. Example: NTI1Cg%3D%3D", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/reports/contacts/{contactType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "startDate", + "tool_parameter_name": "start_date", + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDate", + "tool_parameter_name": "report_end_date", + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "contact_fetch_limit", + "description": "Limit for the number of contacts to fetch\nDefault: 100", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Limit for the number of contacts to fetch\nDefault: 100" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor", + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "contactType", + "tool_parameter_name": "contact_type_filter", + "description": "The type of metric to filter the influenced contacts. Allowed values: contactFirstTouch, contactLastTouch, influencedContacts", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of metric to filter the influenced contacts. Allowed values: contactFirstTouch, contactLastTouch, influencedContacts" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEmailStatistics.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEmailStatistics.json new file mode 100644 index 00000000..4f8bb298 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEmailStatistics.json @@ -0,0 +1,74 @@ +{ + "name": "FetchEmailStatistics", + "fully_qualified_name": "HubspotMarketingApi.FetchEmailStatistics@0.1.0", + "description": "Fetch aggregated email statistics in specified intervals.\n\nThis tool retrieves aggregated email statistics over specified time intervals, providing insights into email performance during each period.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/statistics/histogram'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/statistics/histogram", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEventDetails.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEventDetails.json new file mode 100644 index 00000000..40deb02b --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchEventDetails.json @@ -0,0 +1,109 @@ +{ + "name": "FetchEventDetails", + "fully_qualified_name": "HubspotMarketingApi.FetchEventDetails@0.1.0", + "description": "Fetch details of a marketing event by its object ID.\n\nUse this tool to retrieve detailed information about a specific marketing event by providing its object ID. This can be useful for gaining insights into the event's specifics and managing marketing activities.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_object_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot. Used to fetch specific event details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/{objectId}_getByObjectId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "objectId", + "tool_parameter_name": "marketing_event_object_id", + "description": "The internal ID of the marketing event in HubSpot", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchMarketingCampaignBatches.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchMarketingCampaignBatches.json new file mode 100644 index 00000000..dc4be7cc --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FetchMarketingCampaignBatches.json @@ -0,0 +1,244 @@ +{ + "name": "FetchMarketingCampaignBatches", + "fully_qualified_name": "HubspotMarketingApi.FetchMarketingCampaignBatches@0.1.0", + "description": "Retrieve a batch of HubSpot marketing campaigns and assets.\n\nUse this tool to read a batch of marketing campaigns from HubSpot, along with their associated assets. The tool allows for processing up to 50 campaigns per request. Note that the campaigns returned may not be in the order requested, and duplicate campaign IDs will be handled by returning only unique entries.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_batch_inputs", + "required": true, + "description": "A list of JSON objects, each containing an 'id' key, representing the campaign IDs to fetch. Supports up to 50 campaigns per request.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "fetch_start_date", + "required": false, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. Determines the period for asset metrics. Optional.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDate" + }, + { + "name": "end_date_for_asset_metrics", + "required": false, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. If not provided, no asset metrics will be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched." + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDate" + }, + { + "name": "requested_properties", + "required": false, + "description": "Comma-separated list of properties to return in the response. Ignored if values are empty, resulting in an empty properties map if not specified.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/read'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/batch/read", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "startDate", + "tool_parameter_name": "fetch_start_date", + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.\n", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.\n" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDate", + "tool_parameter_name": "end_date_for_asset_metrics", + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period. If not provided, no asset metrics will be fetched." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "campaign_batch_inputs", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FindHubspotMarketingEvents.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FindHubspotMarketingEvents.json new file mode 100644 index 00000000..a4ff5bb9 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/FindHubspotMarketingEvents.json @@ -0,0 +1,109 @@ +{ + "name": "FindHubspotMarketingEvents", + "fully_qualified_name": "HubspotMarketingApi.FindHubspotMarketingEvents@0.1.0", + "description": "Fetch HubSpot marketing events by externalEventId.\n\nUse this tool to retrieve marketing events from HubSpot where the externalEventId matches the given request parameter. It only returns events created by the app making the request, excluding those made by other apps.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external application (externalEventId) to search for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application (externalEventId)" + }, + "inferrable": true, + "http_endpoint_parameter_name": "q" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/events/search_doSearch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/search", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "q", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application (externalEventId)", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application (externalEventId)" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetAllMarketingEvents.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetAllMarketingEvents.json new file mode 100644 index 00000000..809e4b95 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetAllMarketingEvents.json @@ -0,0 +1,142 @@ +{ + "name": "GetAllMarketingEvents", + "fully_qualified_name": "HubspotMarketingApi.GetAllMarketingEvents@0.1.0", + "description": "Retrieve all marketing events from the portal.\n\nThis tool fetches all available marketing events, including manually created ones and those generated through the application. The events are sorted by objectId.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "cursor_position_after", + "required": false, + "description": "The cursor indicating the position of the last retrieved item for pagination purposes.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "response_limit", + "required": false, + "description": "Sets the maximum number of marketing events to retrieve, between 10 and 100.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/_getAll'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "cursor_position_after", + "description": "The cursor indicating the position of the last retrieved item.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "response_limit", + "description": "The limit for response size. The default value is 10, the max number is 100", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignAttributionMetrics.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignAttributionMetrics.json new file mode 100644 index 00000000..3f8ec0d0 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignAttributionMetrics.json @@ -0,0 +1,175 @@ +{ + "name": "GetCampaignAttributionMetrics", + "fully_qualified_name": "HubspotMarketingApi.GetCampaignAttributionMetrics@0.1.0", + "description": "Retrieve attribution metrics for a specific campaign.\n\nRetrieves key attribution metrics for a specified campaign, including sessions, new contacts, and influenced contacts. Use this tool to analyze campaign performance.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_unique_identifier", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID. Required to retrieve specific campaign metrics.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "start_date_for_report", + "required": false, + "description": "The start date for the report data, formatted as YYYY-MM-DD. Default is 2006-01-01.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDate" + }, + { + "name": "report_end_date", + "required": false, + "description": "Set the end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDate" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/reports/metrics'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/reports/metrics", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "startDate", + "tool_parameter_name": "start_date_for_report", + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDate", + "tool_parameter_name": "report_end_date", + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_unique_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudget.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudget.json new file mode 100644 index 00000000..e648c671 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudget.json @@ -0,0 +1,142 @@ +{ + "name": "GetCampaignBudget", + "fully_qualified_name": "HubspotMarketingApi.GetCampaignBudget@0.1.0", + "description": "Retrieve details of a specific marketing campaign budget item.\n\nThis tool is used to obtain information about a specific budget item within a marketing campaign by providing the campaign GUID and budget ID. Use this tool to access detailed budget data for analysis or reporting purposes.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "The unique identifier for the marketing campaign to access its budget details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "budget_item_id", + "required": true, + "description": "Unique identifier for the budget item to retrieve details.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "budgetId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "budgetId", + "tool_parameter_name": "budget_item_id", + "description": "Unique identifier for the budget item.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudgetDetails.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudgetDetails.json new file mode 100644 index 00000000..c000d795 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignBudgetDetails.json @@ -0,0 +1,109 @@ +{ + "name": "GetCampaignBudgetDetails", + "fully_qualified_name": "HubspotMarketingApi.GetCampaignBudgetDetails@0.1.0", + "description": "Retrieve detailed budget and spend details for a campaign.\n\nThis tool retrieves detailed information regarding the budget and spending for a specific marketing campaign, including total budget, total spend, and remaining budget. It's useful for understanding financial aspects of a campaign.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_unique_identifier", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/budget/totals'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/totals", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_unique_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignDetails.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignDetails.json new file mode 100644 index 00000000..325988c7 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignDetails.json @@ -0,0 +1,208 @@ +{ + "name": "GetCampaignDetails", + "fully_qualified_name": "HubspotMarketingApi.GetCampaignDetails@0.1.0", + "description": "Retrieve details and metrics for a specific marketing campaign.\n\nUse this tool to get detailed information about a marketing campaign using its campaignGuid. It also provides information about associated assets, and if start and end dates are given, metrics for those assets.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "metrics_start_date", + "required": false, + "description": "Start date for fetching asset metrics. Format as YYYY-MM-DD. Metrics are only retrieved if both start and end dates are provided.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDate" + }, + { + "name": "end_date_for_asset_metrics", + "required": false, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. If omitted, no metrics will be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": " End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDate" + }, + { + "name": "properties_list", + "required": false, + "description": "List specific properties to return in the response. Leave empty for an empty properties map.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object, they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map." + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "startDate", + "tool_parameter_name": "metrics_start_date", + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDate", + "tool_parameter_name": "end_date_for_asset_metrics", + "description": " End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": " End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "properties_list", + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object, they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object, they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignRevenueReport.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignRevenueReport.json new file mode 100644 index 00000000..43db87d1 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignRevenueReport.json @@ -0,0 +1,208 @@ +{ + "name": "GetCampaignRevenueReport", + "fully_qualified_name": "HubspotMarketingApi.GetCampaignRevenueReport@0.1.0", + "description": "Fetch revenue attribution report for a specific campaign.\n\nThis tool retrieves the revenue attribution report data for a specified marketing campaign using its unique campaign GUID.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_unique_identifier", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "attribution_model", + "required": false, + "description": "The revenue attribution model to be used. Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED. Defaults to LINEAR.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED\nDefault value: LINEAR" + }, + "inferrable": true, + "http_endpoint_parameter_name": "attributionModel" + }, + { + "name": "report_start_date", + "required": false, + "description": "The start date for the report data in the format YYYY-MM-DD. Default is 2006-01-01.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDate" + }, + { + "name": "report_end_date", + "required": false, + "description": "End date for the report data in YYYY-MM-DD format. Defaults to the current date.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDate" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/reports/revenue'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.revenue.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/reports/revenue", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "attributionModel", + "tool_parameter_name": "attribution_model", + "description": "Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED\nDefault value: LINEAR", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED\nDefault value: LINEAR" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "startDate", + "tool_parameter_name": "report_start_date", + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date for the report data, formatted as YYYY-MM-DD.\nDefault value: 2006-01-01" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDate", + "tool_parameter_name": "report_end_date", + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date for the report data, formatted as YYYY-MM-DD.\nDefault value: Current date" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_unique_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignSpendItem.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignSpendItem.json new file mode 100644 index 00000000..062b4b93 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetCampaignSpendItem.json @@ -0,0 +1,142 @@ +{ + "name": "GetCampaignSpendItem", + "fully_qualified_name": "HubspotMarketingApi.GetCampaignSpendItem@0.1.0", + "description": "Retrieve details of a specific campaign spend item.\n\nUse this tool to get information about a campaign spend item by providing its spendId and campaignGuid.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "Unique identifier for the marketing campaign to retrieve the spend item from.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "spend_item_identifier", + "required": true, + "description": "Unique identifier for the spend item in the campaign.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "spendId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "spendId", + "tool_parameter_name": "spend_item_identifier", + "description": "Unique identifier for the spend item.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetContactParticipationsBreakdown.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetContactParticipationsBreakdown.json new file mode 100644 index 00000000..da5e7094 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetContactParticipationsBreakdown.json @@ -0,0 +1,208 @@ +{ + "name": "GetContactParticipationsBreakdown", + "fully_qualified_name": "HubspotMarketingApi.GetContactParticipationsBreakdown@0.1.0", + "description": "Retrieve a contact's event participation details by ID or email.\n\nThis tool retrieves participation details for a specific contact in marketing events using their email or internal ID. It is useful for analyzing a contact's engagement in various events.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "contact_identifier", + "required": true, + "description": "The identifier of the contact, which can be either an email or an internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactIdentifier" + }, + { + "name": "participation_state", + "required": false, + "description": "The participation state for the contact. Options: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "inferrable": true, + "http_endpoint_parameter_name": "state" + }, + { + "name": "response_size_limit", + "required": false, + "description": "Specify the maximum number of participation records to return. The default is 10, and the maximum is 100.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "pagination_cursor", + "required": false, + "description": "Cursor for the last retrieved item to manage pagination.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown_getParticipationsBreakdownByContactId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "state", + "tool_parameter_name": "participation_state", + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "response_size_limit", + "description": "The limit for response size. The default value is 10, the max number is 100", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor", + "description": "The cursor indicating the position of the last retrieved item.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "contactIdentifier", + "tool_parameter_name": "contact_identifier", + "description": "The identifier of the Contact. It may be email or internal id.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailAbTestVariation.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailAbTestVariation.json new file mode 100644 index 00000000..6825c0e4 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailAbTestVariation.json @@ -0,0 +1,109 @@ +{ + "name": "GetEmailAbTestVariation", + "fully_qualified_name": "HubspotMarketingApi.GetEmailAbTestVariation@0.1.0", + "description": "Retrieve the variation of an A/B test marketing email.\n\nUse this tool to get the opposite variation of a specified A/B marketing email. Ideal for determining the alternative version presented in a marketing email campaign.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_identifier", + "required": true, + "description": "The unique identifier of the marketing email to obtain its A/B test variation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/ab-test/get-variation'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/ab-test/get-variation", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailRevisions.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailRevisions.json new file mode 100644 index 00000000..e53d6e07 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailRevisions.json @@ -0,0 +1,109 @@ +{ + "name": "GetEmailRevisions", + "fully_qualified_name": "HubspotMarketingApi.GetEmailRevisions@0.1.0", + "description": "Retrieve all versions of a marketing email.\n\nUse this tool to get a comprehensive list of all versions of a specified marketing email, each containing the full state of that version.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier of the marketing email to retrieve revisions for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/revisions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailStatistics.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailStatistics.json new file mode 100644 index 00000000..0531e433 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEmailStatistics.json @@ -0,0 +1,74 @@ +{ + "name": "GetEmailStatistics", + "fully_qualified_name": "HubspotMarketingApi.GetEmailStatistics@0.1.0", + "description": "Get aggregated email statistics in a specified time span.\n\nUse this tool to obtain aggregated statistics for emails sent within a specific time period. It also provides a list of all emails sent during that period.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/statistics/list'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/statistics/list", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEventParticipationCounters.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEventParticipationCounters.json new file mode 100644 index 00000000..bc351006 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetEventParticipationCounters.json @@ -0,0 +1,142 @@ +{ + "name": "GetEventParticipationCounters", + "fully_qualified_name": "HubspotMarketingApi.GetEventParticipationCounters@0.1.0", + "description": "Retrieve participation counters for a specific marketing event.\n\nThis tool fetches participation metrics for a marketing event using the externalAccountId and externalEventId. It should be called when you need detailed participation statistics for a specific event in HubSpot's marketing platform.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "event_id", + "required": true, + "description": "The unique identifier for the marketing event in the external application. Required to retrieve participation data.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}_getParticipationsCountersByEventExternalId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetFormById.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetFormById.json new file mode 100644 index 00000000..4cda7975 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetFormById.json @@ -0,0 +1,142 @@ +{ + "name": "GetFormById", + "fully_qualified_name": "HubspotMarketingApi.GetFormById@0.1.0", + "description": "Retrieve a marketing form by its ID.\n\nUse this tool to get detailed information about a specific marketing form by providing its unique form ID.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "form_id", + "required": true, + "description": "The unique identifier for the specific marketing form to retrieve. This ID is required to fetch the form details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the form" + }, + "inferrable": true, + "http_endpoint_parameter_name": "formId" + }, + { + "name": "return_archived_only", + "required": false, + "description": "Set to true to return only archived forms.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/forms/{formId}_getById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "forms" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/forms/{formId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "archived", + "tool_parameter_name": "return_archived_only", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "formId", + "tool_parameter_name": "form_id", + "description": "The unique identifier of the form", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the form" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingCampaigns.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingCampaigns.json new file mode 100644 index 00000000..52b3d716 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingCampaigns.json @@ -0,0 +1,241 @@ +{ + "name": "GetMarketingCampaigns", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingCampaigns@0.1.0", + "description": "Retrieve a page of marketing campaigns with optional filters.\n\nThis tool allows retrieval of a page of marketing campaigns based on query parameters such as name filtering, sorting, and pagination. You can also control the properties included in the response.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "sort_by", + "required": false, + "description": "Specify the field to sort results by. Use '-' to denote descending order. Options are hs_name, createdAt, updatedAt. Default is hs_name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The field by which to sort the results. Allowed values are hs_name, createdAt, updatedAt. An optional '-' before the property name can denote descending order\nDefault: hs_name" + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "pagination_cursor", + "required": false, + "description": "A cursor for pagination. If provided, results start after the given cursor. Example: NTI1Cg%3D%3D", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "max_results_limit", + "required": false, + "description": "Maximum number of campaigns to return (1-100). Default is 50.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to return. Allowed values range from 1 to 100\nDefault: 50" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "campaign_name_filter", + "required": false, + "description": "A substring to filter campaigns by name. Returns campaigns containing this substring. Optional: returns all if not provided.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A filter to return campaigns whose names contain the specified substring. This allows partial matching of campaign names, returning all campaigns that include the given substring in their name. If this parameter is not provided, the search will return all campaigns" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "requested_properties", + "required": false, + "description": "A list of properties to be included in the response. Comma-separate values are required. If any specified property is empty, it will be ignored.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map" + }, + "inferrable": true, + "http_endpoint_parameter_name": "properties" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "sort", + "tool_parameter_name": "sort_by", + "description": "The field by which to sort the results. Allowed values are hs_name, createdAt, updatedAt. An optional '-' before the property name can denote descending order\nDefault: hs_name", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The field by which to sort the results. Allowed values are hs_name, createdAt, updatedAt. An optional '-' before the property name can denote descending order\nDefault: hs_name" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor", + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "max_results_limit", + "description": "The maximum number of results to return. Allowed values range from 1 to 100\nDefault: 50", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to return. Allowed values range from 1 to 100\nDefault: 50" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "campaign_name_filter", + "description": "A filter to return campaigns whose names contain the specified substring. This allows partial matching of campaign names, returning all campaigns that include the given substring in their name. If this parameter is not provided, the search will return all campaigns", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A filter to return campaigns whose names contain the specified substring. This allows partial matching of campaign names, returning all campaigns that include the given substring in their name. If this parameter is not provided, the search will return all campaigns" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "properties", + "tool_parameter_name": "requested_properties", + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A comma-separated list of the properties to be returned in the response. If any of the specified properties has empty value on the requested object(s), they will be ignored and not returned in response. If this parameter is empty, the response will include an empty properties map" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailDetails.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailDetails.json new file mode 100644 index 00000000..582b4796 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailDetails.json @@ -0,0 +1,109 @@ +{ + "name": "GetMarketingEmailDetails", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEmailDetails@0.1.0", + "description": "Retrieve details for a specific marketing email.\n\nUse this tool to get comprehensive information about a marketing email by specifying its email ID.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier for the specific marketing email. Required to retrieve email details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailRevision.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailRevision.json new file mode 100644 index 00000000..89e5a457 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEmailRevision.json @@ -0,0 +1,142 @@ +{ + "name": "GetMarketingEmailRevision", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEmailRevision@0.1.0", + "description": "Retrieve a specific revision of a marketing email.\n\nUse this tool to get details about a specific revision of a marketing email by providing the email and revision IDs.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier for the marketing email. This ID is required to specify which email's revision details to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "email_revision_id", + "required": true, + "description": "The unique ID of the specific email revision to retrieve. Provide the revisionId for accessing the exact version.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "revisionId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/revisions/{revisionId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions/{revisionId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "revisionId", + "tool_parameter_name": "email_revision_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventAssociatedLists.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventAssociatedLists.json new file mode 100644 index 00000000..5e6a038a --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventAssociatedLists.json @@ -0,0 +1,142 @@ +{ + "name": "GetMarketingEventAssociatedLists", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEventAssociatedLists@0.1.0", + "description": "Retrieve lists associated with a specific marketing event.\n\nCall this tool to get lists associated with a marketing event using external account and event IDs. Useful for accessing participant or attendee lists linked to specific marketing events.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event from the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists_getAllByExternalAccountAndEventIds'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventDetails.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventDetails.json new file mode 100644 index 00000000..07e9b2e4 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventDetails.json @@ -0,0 +1,142 @@ +{ + "name": "GetMarketingEventDetails", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEventDetails@0.1.0", + "description": "Retrieve details of a specific marketing event.\n\nFetches details of a marketing event using its externalEventId. Only events created by the requesting app can be accessed.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The accountId associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "required": true, + "description": "The unique identifier of the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/events/{externalEventId}_getDetails'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventLists.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventLists.json new file mode 100644 index 00000000..68021d6e --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventLists.json @@ -0,0 +1,109 @@ +{ + "name": "GetMarketingEventLists", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEventLists@0.1.0", + "description": "Retrieve lists associated with a specific marketing event.\n\nThis tool fetches all lists associated with a given marketing event using the marketing event ID. It should be called when you need to obtain lists connected to a particular marketing event for analysis or reporting purposes.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot to retrieve associated lists.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "marketingEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/associations/{marketingEventId}/lists_getAllByMarketingEventId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/associations/{marketingEventId}/lists", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "marketingEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal id of the marketing event in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationBreakdown.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationBreakdown.json new file mode 100644 index 00000000..13313262 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationBreakdown.json @@ -0,0 +1,274 @@ +{ + "name": "GetMarketingEventParticipationBreakdown", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEventParticipationBreakdown@0.1.0", + "description": "Retrieve the participation breakdown for a marketing event.\n\nThis tool fetches the participation breakdown for a specified marketing event, filtered by externalAccountId and externalEventId. It provides detailed insights on event participation metrics.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The ID associated with the marketing event's account in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "contact_identifier", + "required": false, + "description": "The unique identifier for the contact, such as an email or internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactIdentifier" + }, + { + "name": "participation_state_filter", + "required": false, + "description": "The participation state to filter results. Possible values: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "inferrable": true, + "http_endpoint_parameter_name": "state" + }, + { + "name": "response_size_limit", + "required": false, + "description": "Maximum number of participations to retrieve. Default is 10, maximum is 100.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "pagination_cursor", + "required": false, + "description": "The cursor indicating the position of the last retrieved item, used for pagination.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown_getParticipationsBreakdownByExternalEventId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "contactIdentifier", + "tool_parameter_name": "contact_identifier", + "description": "The identifier of the Contact. It may be email or internal id.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "state", + "tool_parameter_name": "participation_state_filter", + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "response_size_limit", + "description": "The limit for response size. The default value is 10, the max number is 100", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "pagination_cursor", + "description": "The cursor indicating the position of the last retrieved item.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationCounters.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationCounters.json new file mode 100644 index 00000000..7daf4834 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationCounters.json @@ -0,0 +1,109 @@ +{ + "name": "GetMarketingEventParticipationCounters", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEventParticipationCounters@0.1.0", + "description": "Retrieve participation counters for a marketing event.\n\nThis tool fetches the participation statistics for a specified marketing event using its internal identifier.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot, required to fetch participation counters.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "marketingEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{marketingEventId}_getParticipationsCountersByMarketingEventId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/participations/{marketingEventId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "marketingEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal id of the marketing event in HubSpot.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationsBreakdown.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationsBreakdown.json new file mode 100644 index 00000000..e3702bcd --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetMarketingEventParticipationsBreakdown.json @@ -0,0 +1,241 @@ +{ + "name": "GetMarketingEventParticipationsBreakdown", + "fully_qualified_name": "HubspotMarketingApi.GetMarketingEventParticipationsBreakdown@0.1.0", + "description": "Retrieve participations breakdown for a specific marketing event.\n\nThis tool fetches a detailed breakdown of participations for a specific marketing event identified by marketingEventId. It can be used to analyze participation metrics and insights for a given event.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal id of the marketing event in HubSpot.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "inferrable": true, + "http_endpoint_parameter_name": "marketingEventId" + }, + { + "name": "contact_identifier", + "required": false, + "description": "The identifier of the Contact. It can be an email or internal ID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "inferrable": true, + "http_endpoint_parameter_name": "contactIdentifier" + }, + { + "name": "participation_state", + "required": false, + "description": "The participation state filter, which can be REGISTERED, CANCELLED, ATTENDED, or NO_SHOW.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "inferrable": true, + "http_endpoint_parameter_name": "state" + }, + { + "name": "response_size_limit", + "required": false, + "description": "Set the maximum number of records to return. Default is 10, maximum is 100.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "last_retrieved_position_cursor", + "required": false, + "description": "The cursor indicating the position of the last retrieved item for pagination.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown_getParticipationsBreakdownByMarketingEventId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/participations/{marketingEventId}/breakdown", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "contactIdentifier", + "tool_parameter_name": "contact_identifier", + "description": "The identifier of the Contact. It may be email or internal id.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the Contact. It may be email or internal id." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "state", + "tool_parameter_name": "participation_state", + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The participation state value. It may be REGISTERED, CANCELLED, ATTENDED, NO_SHOW" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "response_size_limit", + "description": "The limit for response size. The default value is 10, the max number is 100", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The limit for response size. The default value is 10, the max number is 100" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 10, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "last_retrieved_position_cursor", + "description": "The cursor indicating the position of the last retrieved item.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The cursor indicating the position of the last retrieved item." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "marketingEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal id of the marketing event in HubSpot.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetSmtpTokenById.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetSmtpTokenById.json new file mode 100644 index 00000000..ccf59a1f --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/GetSmtpTokenById.json @@ -0,0 +1,109 @@ +{ + "name": "GetSmtpTokenById", + "fully_qualified_name": "HubspotMarketingApi.GetSmtpTokenById@0.1.0", + "description": "Retrieve details of an SMTP token using its ID.\n\nThis tool is used to query a specific SMTP token by its ID within the HubSpot Marketing platform. Call this tool when you need to access detailed information about a particular SMTP transactional token.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "smtp_token_id", + "required": true, + "description": "The unique identifier of the SMTP token to be queried.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tokenId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/transactional/smtp-tokens/{tokenId}_getTokenById'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/transactional/smtp-tokens/{tokenId}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "tokenId", + "tool_parameter_name": "smtp_token_id", + "description": "Identifier generated when a token is created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/HubspotMarketingEmailFilter.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/HubspotMarketingEmailFilter.json new file mode 100644 index 00000000..cb709ca6 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/HubspotMarketingEmailFilter.json @@ -0,0 +1,74 @@ +{ + "name": "HubspotMarketingEmailFilter", + "fully_qualified_name": "HubspotMarketingApi.HubspotMarketingEmailFilter@0.1.0", + "description": "Retrieve and filter HubSpot marketing emails.\n\nUse this tool to retrieve and filter marketing emails from HubSpot. It allows you to apply various filters to find specific sets of emails based on your criteria.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/LinkListToEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/LinkListToEvent.json new file mode 100644 index 00000000..1b584791 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/LinkListToEvent.json @@ -0,0 +1,175 @@ +{ + "name": "LinkListToEvent", + "fully_qualified_name": "HubspotMarketingApi.LinkListToEvent@0.1.0", + "description": "Associates a marketing list with an event in HubSpot.\n\nThis tool associates a list with a marketing event using the external account ID, external event ID, and ILS list ID. It should be called when you need to link a specific list to a marketing event for tracking or organizational purposes.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external event application. Used to specify which event to associate with the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "ils_list_id", + "required": true, + "description": "The ILS ID of the list to associate with the marketing event.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "listId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}_associateByExternalAccountAndEventIds'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "listId", + "tool_parameter_name": "ils_list_id", + "description": "The ILS ID of the list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ILS ID of the list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListCampaignAssets.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListCampaignAssets.json new file mode 100644 index 00000000..eb5c7470 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListCampaignAssets.json @@ -0,0 +1,274 @@ +{ + "name": "ListCampaignAssets", + "fully_qualified_name": "HubspotMarketingApi.ListCampaignAssets@0.1.0", + "description": "Retrieve all assets of a specified type for a campaign.\n\nThis tool lists all assets of a particular type within a specified marketing campaign. It can also fetch asset metrics if start and end dates are provided, allowing for detailed analysis of campaign performance.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_identifier", + "required": true, + "description": "Unique identifier for the campaign in UUID format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "asset_type", + "required": true, + "description": "The type of asset to fetch for the campaign, e.g., 'email', 'webpage'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset to fetch." + }, + "inferrable": true, + "http_endpoint_parameter_name": "assetType" + }, + { + "name": "pagination_cursor", + "required": false, + "description": "A cursor for pagination. If provided, results start after this cursor. Example: NTI1Cg%3D%3D", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "maximum_results_limit", + "required": false, + "description": "The maximum number of asset results to return. Default is 10.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to return.\nDefault: 10" + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "metrics_start_date", + "required": false, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. Used to fetch metrics for a specified period. If not provided, no metrics will be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDate" + }, + { + "name": "end_date_for_asset_metrics", + "required": false, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. Used for fetching metrics of assets within a specified period. Optional parameter.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDate" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/assets/{assetType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "pagination_cursor", + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A cursor for pagination. If provided, the results will start after the given cursor.\nExample: NTI1Cg%3D%3D" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "maximum_results_limit", + "description": "The maximum number of results to return.\nDefault: 10", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to return.\nDefault: 10" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "startDate", + "tool_parameter_name": "metrics_start_date", + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.\n", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Start date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.\n" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDate", + "tool_parameter_name": "end_date_for_asset_metrics", + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "End date to fetch asset metrics, formatted as YYYY-MM-DD. This date is used to fetch the metrics associated with the assets for a specified period.\nIf not provided, no asset metrics will be fetched." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_identifier", + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "assetType", + "tool_parameter_name": "asset_type", + "description": "The type of asset to fetch.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The type of asset to fetch." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListHubspotForms.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListHubspotForms.json new file mode 100644 index 00000000..5834522e --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ListHubspotForms.json @@ -0,0 +1,208 @@ +{ + "name": "ListHubspotForms", + "fully_qualified_name": "HubspotMarketingApi.ListHubspotForms@0.1.0", + "description": "Retrieve a list of HubSpot marketing forms.\n\nCall this tool to obtain a list of marketing forms from HubSpot. It applies search filters if provided, otherwise returns the first 20 forms by default.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "paging_cursor_token", + "required": false, + "description": "The token indicating the cursor position for paginated results. Use `paging.next.after` from the previous response to fetch more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "results_per_page", + "required": false, + "description": "Specify the maximum number of forms to retrieve per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "included_form_types", + "required": false, + "description": "List of form types to include in results, e.g., 'hubspot', 'workflow', etc.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The form types to be included in the results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "formTypes" + }, + { + "name": "return_only_archived_forms", + "required": false, + "description": "Set to true to return only archived forms in the results.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "inferrable": true, + "http_endpoint_parameter_name": "archived" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/forms/_getPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "forms" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/forms/", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "paging_cursor_token", + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "results_per_page", + "description": "The maximum number of results to display per page.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of results to display per page." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "archived", + "tool_parameter_name": "return_only_archived_forms", + "description": "Whether to return only results that have been archived.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to return only results that have been archived." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "formTypes", + "tool_parameter_name": "included_form_types", + "description": "The form types to be included in the results.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The form types to be included in the results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/MarkMarketingEventCompleted.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/MarkMarketingEventCompleted.json new file mode 100644 index 00000000..e57afcdb --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/MarkMarketingEventCompleted.json @@ -0,0 +1,208 @@ +{ + "name": "MarkMarketingEventCompleted", + "fully_qualified_name": "HubspotMarketingApi.MarkMarketingEventCompleted@0.1.0", + "description": "Mark a marketing event as completed in HubSpot.\n\nUse this tool to mark a marketing event as completed in HubSpot, identified by its externalEventId. This confirms that the specified event has been finalized.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "required": true, + "description": "The unique ID of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "event_start_date_time", + "required": true, + "description": "The start date and time of the marketing event, formatted as an ISO 8601 string.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "startDateTime" + }, + { + "name": "event_end_datetime", + "required": true, + "description": "The date and time when the marketing event ended. Expected in ISO 8601 format.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "endDateTime" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/complete_complete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/complete", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "startDateTime", + "tool_parameter_name": "event_start_date_time", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "endDateTime", + "tool_parameter_name": "event_end_datetime", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"endDateTime\",\n \"startDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ModifyEventInformation.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ModifyEventInformation.json new file mode 100644 index 00000000..40af708f --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ModifyEventInformation.json @@ -0,0 +1,802 @@ +{ + "name": "ModifyEventInformation", + "fully_qualified_name": "HubspotMarketingApi.ModifyEventInformation@0.1.0", + "description": "Update details of a specific marketing event.\n\nUse this tool to update the details of an existing marketing event by providing the object's ID. It confirms whether the update was successful.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_internal_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "event_update_details", + "required": true, + "description": "JSON object containing various event details such as start and end date, custom properties, event name, organizer, and more to update the marketing event.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/marketing/v3/marketing-events/{objectId}_updateByObjectId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "objectId", + "tool_parameter_name": "event_internal_id", + "description": "The internal ID of the marketing event in HubSpot", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "event_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"customProperties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"eventCancelled\": {\n \"type\": \"boolean\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\"\n },\n \"eventUrl\": {\n \"type\": \"string\"\n },\n \"eventDescription\": {\n \"type\": \"string\"\n },\n \"eventName\": {\n \"type\": \"string\"\n },\n \"eventType\": {\n \"type\": \"string\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/PublishHubspotEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/PublishHubspotEmail.json new file mode 100644 index 00000000..ba37eab5 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/PublishHubspotEmail.json @@ -0,0 +1,110 @@ +{ + "name": "PublishHubspotEmail", + "fully_qualified_name": "HubspotMarketingApi.PublishHubspotEmail@0.1.0", + "description": "Publish a HubSpot marketing email.\n\nUse this tool to publish a marketing email in HubSpot by specifying the email ID. This should be called when you need to make an email live as part of a marketing campaign.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_email_id", + "required": true, + "description": "The unique identifier for the HubSpot marketing email to publish.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/publish'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing-email", + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/publish", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "hubspot_email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/QuerySmtpTokens.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/QuerySmtpTokens.json new file mode 100644 index 00000000..d645ef46 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/QuerySmtpTokens.json @@ -0,0 +1,208 @@ +{ + "name": "QuerySmtpTokens", + "fully_qualified_name": "HubspotMarketingApi.QuerySmtpTokens@0.1.0", + "description": "Retrieve SMTP API tokens by campaign name or emailCampaignId.\n\nUse this tool to query multiple SMTP API tokens associated with a campaign by its name, or to retrieve a single token using an emailCampaignId. This is useful for managing email campaigns and accessing specific token information.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_name", + "required": false, + "description": "Name of the campaign tied to the SMTP API token to query tokens.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A name for the campaign tied to the SMTP API token." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignName" + }, + { + "name": "email_campaign_id", + "required": false, + "description": "Identifier assigned to the campaign provided during the token creation. Used to retrieve a specific SMTP API token.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier assigned to the campaign provided during the token creation." + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailCampaignId" + }, + { + "name": "result_pagination_start", + "required": false, + "description": "Specify a starting point for retrieving the next set of results. Use this for paginating through results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Starting point to get the next set of results." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "maximum_tokens_to_return", + "required": false, + "description": "Specify the maximum number of SMTP API tokens to return in the response.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Maximum number of tokens to return." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/transactional/smtp-tokens_getTokensPage'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/transactional/smtp-tokens", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "campaignName", + "tool_parameter_name": "campaign_name", + "description": "A name for the campaign tied to the SMTP API token.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A name for the campaign tied to the SMTP API token." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "emailCampaignId", + "tool_parameter_name": "email_campaign_id", + "description": "Identifier assigned to the campaign provided during the token creation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier assigned to the campaign provided during the token creation." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "after", + "tool_parameter_name": "result_pagination_start", + "description": "Starting point to get the next set of results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Starting point to get the next set of results." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "maximum_tokens_to_return", + "description": "Maximum number of tokens to return.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Maximum number of tokens to return." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventAttendance.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventAttendance.json new file mode 100644 index 00000000..c9e69ad8 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventAttendance.json @@ -0,0 +1,243 @@ +{ + "name": "RecordEventAttendance", + "fully_qualified_name": "HubspotMarketingApi.RecordEventAttendance@0.1.0", + "description": "Record participation of HubSpot contacts in a marketing event.\n\nUse this tool to record the attendance of multiple HubSpot contacts at a marketing event using their HubSpot contact IDs. This also adds a timeline event to each contact's record. The tool is applicable for the \"attend\" state with optional properties like \"joinedAt\" and \"leftAt\".", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot for which attendance is being recorded.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "attendance_state", + "required": true, + "description": "Specifies the attendance state of the contact: 'register', 'attend', or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'" + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriberState" + }, + { + "name": "contact_participation_details", + "required": true, + "description": "A list of contact details, including ID, properties, and interaction time, for recording event attendance.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create_recordByContactId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal id of the marketing event in HubSpot", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal id of the marketing event in HubSpot" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriberState", + "tool_parameter_name": "attendance_state", + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "contact_participation_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of HubSpot contacts to subscribe to the marketing event\",\n \"items\": {\n \"required\": [\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"vid\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventParticipationHubspot.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventParticipationHubspot.json new file mode 100644 index 00000000..305fa831 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordEventParticipationHubspot.json @@ -0,0 +1,292 @@ +{ + "name": "RecordEventParticipationHubspot", + "fully_qualified_name": "HubspotMarketingApi.RecordEventParticipationHubspot@0.1.0", + "description": "Record participation of contacts in a HubSpot marketing event.\n\nUse this tool to record the attendance of HubSpot contacts in a marketing event using their email addresses. It can automatically create contacts if they do not exist and adds a timeline event for them. This is particularly useful for logging who attended or participated in specific marketing events.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "subscriber_state", + "required": true, + "description": "The new subscriber state for HubSpot contacts in the specified event. Options: 'register', 'attend', 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriberState" + }, + { + "name": "marketing_event_participation_details", + "required": true, + "description": "JSON object containing details of contacts, including email, properties, and interaction date/time for marketing event participation.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "external_account_id", + "required": false, + "description": "The account ID linked to the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create_recordByContactEmails'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriberState", + "tool_parameter_name": "subscriber_state", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_participation_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of marketing event details to create or update\",\n \"items\": {\n \"required\": [\n \"email\",\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address of the contact in HubSpot to associate with the event.\"\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordHubspotSubscriberState.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordHubspotSubscriberState.json new file mode 100644 index 00000000..91bacf19 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordHubspotSubscriberState.json @@ -0,0 +1,276 @@ +{ + "name": "RecordHubspotSubscriberState", + "fully_qualified_name": "HubspotMarketingApi.RecordHubspotSubscriberState@0.1.0", + "description": "Record subscriber state for HubSpot contacts and events.\n\nRecord a subscriber state between multiple HubSpot contacts and a marketing event using HubSpot contact IDs. Note: Contacts must already exist in HubSpot.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "event_id_in_external_app", + "required": true, + "description": "The ID of the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "subscriber_state", + "required": true, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event, such as 'register', 'attend', or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriberState" + }, + { + "name": "hubspot_contacts_list", + "required": true, + "description": "A list of contact objects, each with 'vid', 'properties', and 'interactionDateTime' fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert_upsertByContactId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "event_id_in_external_app", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriberState", + "tool_parameter_name": "subscriber_state", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "hubspot_contacts_list", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of HubSpot contacts to subscribe to the marketing event\",\n \"items\": {\n \"required\": [\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"vid\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordMarketingEventAttendance.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordMarketingEventAttendance.json new file mode 100644 index 00000000..c99dbb13 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordMarketingEventAttendance.json @@ -0,0 +1,276 @@ +{ + "name": "RecordMarketingEventAttendance", + "fully_qualified_name": "HubspotMarketingApi.RecordMarketingEventAttendance@0.1.0", + "description": "Record participation of HubSpot contacts in a Marketing Event.\n\nUse this tool to mark multiple HubSpot contacts as having participated in a specific marketing event. It is useful for updating contact records and timelines when contacts attend an event. The tool supports additional properties like 'joinedAt' and 'leftAt' for the 'attend' state.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_event_id", + "required": true, + "description": "The identifier for the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "new_subscriber_state", + "required": true, + "description": "Specifies the new state of the contact in relation to the marketing event, such as 'register', 'attend', or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriberState" + }, + { + "name": "contact_participation_details", + "required": true, + "description": "JSON array of contact participation details, including contact ID, properties, and interaction timestamp.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "external_account_id", + "required": false, + "description": "The ID identifying the account associated with the marketing event in the external application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create_recordByContactIds'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriberState", + "tool_parameter_name": "new_subscriber_state", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "contact_participation_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "vid": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of HubSpot contacts to subscribe to the marketing event" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of HubSpot contacts to subscribe to the marketing event\",\n \"items\": {\n \"required\": [\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"vid\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordSubscriberState.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordSubscriberState.json new file mode 100644 index 00000000..d50ac3ba --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RecordSubscriberState.json @@ -0,0 +1,292 @@ +{ + "name": "RecordSubscriberState", + "fully_qualified_name": "HubspotMarketingApi.RecordSubscriberState@0.1.0", + "description": "Record a subscriber's state for a marketing event using email.\n\nThis tool records the subscriber state of a HubSpot contact in relation to a specific marketing event using the contact's email. Note: the contact must already exist in HubSpot.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID linked to the marketing event in the external application, required for identifying events.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "marketing_event_id", + "required": true, + "description": "The unique identifier for the marketing event in the external application. Required to record subscriber state.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "subscriber_state", + "required": true, + "description": "The new subscriber state for a HubSpot contact in the specified marketing event. Options include 'register', 'attend', or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriberState" + }, + { + "name": "marketing_event_details", + "required": true, + "description": "A list of details including contact email, properties, and timestamp for marketing event subscription updates.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert_upsertByContactEmail'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "marketing_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriberState", + "tool_parameter_name": "subscriber_state", + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of marketing event details to create or update\",\n \"items\": {\n \"required\": [\n \"email\",\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address of the contact in HubSpot to associate with the event.\"\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RegisterEventParticipation.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RegisterEventParticipation.json new file mode 100644 index 00000000..93a0995d --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RegisterEventParticipation.json @@ -0,0 +1,259 @@ +{ + "name": "RegisterEventParticipation", + "fully_qualified_name": "HubspotMarketingApi.RegisterEventParticipation@0.1.0", + "description": "Logs event participation for contacts using email addresses.\n\nRecords participation of HubSpot contacts in a marketing event using emails. Automatically creates non-existing contacts and logs the event on their timeline. Applicable for 'attend' state, with optional 'joinedAt' and 'leftAt' properties.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event in HubSpot. It is required to log participation for contacts.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + }, + { + "name": "attendance_state", + "required": true, + "description": "The attendance state for the contact in the event. Options: 'register', 'attend', or 'cancel'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'" + }, + "inferrable": true, + "http_endpoint_parameter_name": "subscriberState" + }, + { + "name": "event_participation_details", + "required": true, + "description": "A JSON object containing an array of marketing event details for each contact. Includes 'email', 'interactionDateTime', and optional 'contactProperties'.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create_recordByEmail'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/email-create", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "objectId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal ID of the marketing event in HubSpot", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "subscriberState", + "tool_parameter_name": "attendance_state", + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The attendance state value. It may be 'register', 'attend' or 'cancel'" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "event_participation_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "email": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The email address of the contact in HubSpot to associate with the event." + }, + "interactionDateTime": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp in milliseconds at which the contact subscribed to the event." + } + }, + "description": "List of marketing event details to create or update" + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"description\": \"List of marketing event details to create or update\",\n \"items\": {\n \"required\": [\n \"email\",\n \"interactionDateTime\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"email\": {\n \"type\": \"string\",\n \"description\": \"The email address of the contact in HubSpot to associate with the event.\"\n },\n \"interactionDateTime\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp in milliseconds at which the contact subscribed to the event.\",\n \"format\": \"int64\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveCampaignSpendItem.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveCampaignSpendItem.json new file mode 100644 index 00000000..6895c3c5 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveCampaignSpendItem.json @@ -0,0 +1,142 @@ +{ + "name": "RemoveCampaignSpendItem", + "fully_qualified_name": "HubspotMarketingApi.RemoveCampaignSpendItem@0.1.0", + "description": "Deletes a specific campaign spend item by ID.\n\nUse this tool to delete a specific spend item from a marketing campaign using its ID. This is useful for managing and updating campaign expenses in HubSpot Marketing.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_identifier", + "required": true, + "description": "Unique identifier for the specific marketing campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "spend_item_id", + "required": true, + "description": "Unique identifier for the specific spend item to be deleted from the campaign.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "spendId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_identifier", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "spendId", + "tool_parameter_name": "spend_item_id", + "description": "Unique identifier for the spend item.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvent.json new file mode 100644 index 00000000..72529fe7 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvent.json @@ -0,0 +1,109 @@ +{ + "name": "RemoveMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.RemoveMarketingEvent@0.1.0", + "description": "Deletes a specified marketing event by objectId.\n\nUse this tool to delete an existing marketing event in HubSpot Marketing using its objectId. Call this tool when you need to remove a marketing event from the system.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_id", + "required": true, + "description": "The internal ID of the marketing event to be deleted in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "inferrable": true, + "http_endpoint_parameter_name": "objectId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'delete-/marketing/v3/marketing-events/{objectId}_archiveByObjectId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "objectId", + "tool_parameter_name": "marketing_event_id", + "description": "The internal ID of the marketing event in HubSpot", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal ID of the marketing event in HubSpot" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvents.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvents.json new file mode 100644 index 00000000..06a0d210 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RemoveMarketingEvents.json @@ -0,0 +1,177 @@ +{ + "name": "RemoveMarketingEvents", + "fully_qualified_name": "HubspotMarketingApi.RemoveMarketingEvents@0.1.0", + "description": "Delete multiple HubSpot marketing events by specific IDs.\n\nThis tool deletes multiple HubSpot marketing events based on provided external account, event, and app IDs. It is used to remove events created by the calling app, ensuring events from other apps remain unaffected.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "event_deletion_requests", + "required": true, + "description": "A JSON array containing objects with 'externalAccountId', 'externalEventId', and 'appId'. These objects specify the marketing events to delete.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "appId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the application that created the marketing event in HubSpot." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/delete_archive'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/delete", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "event_deletion_requests", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "appId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the application that created the marketing event in HubSpot." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"appId\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"appId\": {\n \"type\": \"integer\",\n \"description\": \"The id of the application that created the marketing event in HubSpot.\",\n \"format\": \"int32\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetEmailDraftToLive.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetEmailDraftToLive.json new file mode 100644 index 00000000..7437958f --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetEmailDraftToLive.json @@ -0,0 +1,109 @@ +{ + "name": "ResetEmailDraftToLive", + "fully_qualified_name": "HubspotMarketingApi.ResetEmailDraftToLive@0.1.0", + "description": "Reset an email draft to match the live version.\n\nUse this tool to reset an email draft to a copy of its currently live version in HubSpot Marketing. This is useful when you want to discard changes made to a draft and revert to the original published version.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier for the email draft to be reset. This is a string value used to specify which draft to revert.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/draft/reset'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/draft/reset", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetPasswordForToken.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetPasswordForToken.json new file mode 100644 index 00000000..61c331f8 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/ResetPasswordForToken.json @@ -0,0 +1,109 @@ +{ + "name": "ResetPasswordForToken", + "fully_qualified_name": "HubspotMarketingApi.ResetPasswordForToken@0.1.0", + "description": "Resets the password for a specified token.\n\nThis tool allows you to create a new password for a specified token, invalidating the old password. Use it when you need to reset the password associated with a specific SMTP token in HubSpot's marketing system.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "token_identifier", + "required": true, + "description": "The unique string identifier for the token, used to reset its password.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tokenId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset_resetPassword'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "tokenId", + "tool_parameter_name": "token_identifier", + "description": "Identifier generated when a token is created.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Identifier generated when a token is created." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevision.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevision.json new file mode 100644 index 00000000..a7ad2178 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevision.json @@ -0,0 +1,142 @@ +{ + "name": "RestoreEmailRevision", + "fully_qualified_name": "HubspotMarketingApi.RestoreEmailRevision@0.1.0", + "description": "Restore a previous revision of a marketing email.\n\nUse this tool to revert a marketing email to a specified previous revision. The current version is archived, and the restored revision is assigned a new version number.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier for the marketing email you want to restore. This ID is required to specify which email's revision needs restoration.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "revision_id", + "required": true, + "description": "The unique identifier for the specific revision of the email to be restored.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "revisionId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "revisionId", + "tool_parameter_name": "revision_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevisionToDraft.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevisionToDraft.json new file mode 100644 index 00000000..5d9c8af1 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RestoreEmailRevisionToDraft.json @@ -0,0 +1,142 @@ +{ + "name": "RestoreEmailRevisionToDraft", + "fully_qualified_name": "HubspotMarketingApi.RestoreEmailRevisionToDraft@0.1.0", + "description": "Restore a previous email revision to draft state.\n\nUse this tool to revert a marketing email back to a previous revision, setting it to DRAFT. This will overwrite any current content in the draft for that email.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_identifier", + "required": true, + "description": "The unique identifier of the marketing email whose revision is to be restored to draft. This should match the specific email ID format used by HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "revision_id", + "required": true, + "description": "The unique identifier of the email revision to be restored to draft state.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "revisionId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/revisions/{revisionId}/restore-to-draft", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "revisionId", + "tool_parameter_name": "revision_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RetrieveEmailDraft.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RetrieveEmailDraft.json new file mode 100644 index 00000000..58f10d7a --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/RetrieveEmailDraft.json @@ -0,0 +1,109 @@ +{ + "name": "RetrieveEmailDraft", + "fully_qualified_name": "HubspotMarketingApi.RetrieveEmailDraft@0.1.0", + "description": "Retrieve the draft version of a specified email.\n\nThis tool retrieves the draft version of a specified email by its ID from HubSpot Marketing. If no draft exists, the published version is returned instead. It should be used when you need to access the current draft or latest version of an email.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier of the email to retrieve the draft for. This ID is used to specify which email's draft or published version should be accessed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/emails/{emailId}/draft'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/draft", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SearchMarketingEventsByExternalId.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SearchMarketingEventsByExternalId.json new file mode 100644 index 00000000..a014439c --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SearchMarketingEventsByExternalId.json @@ -0,0 +1,109 @@ +{ + "name": "SearchMarketingEventsByExternalId", + "fully_qualified_name": "HubspotMarketingApi.SearchMarketingEventsByExternalId@0.1.0", + "description": "Search for marketing events by external ID.\n\nThis tool retrieves all marketing events whose externalEventId matches the provided value. It returns object IDs and additional details for each matching event. Useful for finding all marketing events linked to a specific external ID after creation.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external event application used to search for matching events.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'get-/marketing/v3/marketing-events/{externalEventId}/identifiers_searchPortalEvents'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.read" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/{externalEventId}/identifiers", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendMarketingEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendMarketingEmail.json new file mode 100644 index 00000000..00164087 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendMarketingEmail.json @@ -0,0 +1,274 @@ +{ + "name": "SendMarketingEmail", + "fully_qualified_name": "HubspotMarketingApi.SendMarketingEmail@0.1.0", + "description": "Send a template email to a specific recipient.\n\nThis tool sends a marketing email using a predefined template to a specified recipient via HubSpot. It's useful for automating email campaigns and reaching target audiences efficiently.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_content_data", + "required": true, + "description": "A JSON object containing email ID, message details, custom properties, and contact properties for sending a marketing email.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The content ID for the email, which can be found in email tool UI." + }, + "message": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Cc." + }, + "sendId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Bcc." + }, + "replyTo": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of Reply-To header values for the email." + }, + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The From header for the email." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The recipient of the email." + } + }, + "inner_properties": null, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v4/email/single-send'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing-email", + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v4/email/single-send", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_content_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The content ID for the email, which can be found in email tool UI." + }, + "message": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Cc." + }, + "sendId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Bcc." + }, + "replyTo": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of Reply-To header values for the email." + }, + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The From header for the email." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The recipient of the email." + } + }, + "inner_properties": null, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"emailId\",\n \"message\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"customProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.\"\n },\n \"emailId\": {\n \"type\": \"integer\",\n \"description\": \"The content ID for the email, which can be found in email tool UI.\",\n \"format\": \"int64\"\n },\n \"message\": {\n \"required\": [\n \"to\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"cc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Cc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sendId\": {\n \"type\": \"string\",\n \"description\": \"ID for a particular send. No more than one email will be sent per sendId.\"\n },\n \"bcc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Bcc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"replyTo\": {\n \"type\": \"array\",\n \"description\": \"List of Reply-To header values for the email.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"from\": {\n \"type\": \"string\",\n \"description\": \"The From header for the email.\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"The recipient of the email.\"\n }\n },\n \"description\": \"A JSON object containing anything you want to override.\"\n },\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\\u2019re sending the email. For example, when sending a receipt you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.\"\n }\n },\n \"description\": \"A request to send a single email asynchronously.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendTransactionalEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendTransactionalEmail.json new file mode 100644 index 00000000..faaafcbb --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/SendTransactionalEmail.json @@ -0,0 +1,273 @@ +{ + "name": "SendTransactionalEmail", + "fully_qualified_name": "HubspotMarketingApi.SendTransactionalEmail@0.1.0", + "description": "Send a transactional email asynchronously.\n\nUse this tool to send a transactional email asynchronously and obtain the status of the email send with a statusId, which can be queried further using the Email Send Status API.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_request_details", + "required": true, + "description": "A JSON object detailing the email to send, including custom properties, email ID, message content, and contact properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The content ID for the transactional email, which can be found in email tool UI." + }, + "message": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Cc." + }, + "sendId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Bcc." + }, + "replyTo": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of Reply-To header values for the email." + }, + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The From header for the email." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The recipient of the email." + } + }, + "inner_properties": null, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "inner_properties": null, + "description": "A request object describing the email to send." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/transactional/single-email/send_sendEmail'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/transactional/single-email/send", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "email_request_details", + "description": "A request object describing the email to send.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property." + }, + "emailId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The content ID for the transactional email, which can be found in email tool UI." + }, + "message": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Cc." + }, + "sendId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID for a particular send. No more than one email will be sent per sendId." + }, + "bcc": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of email addresses to send as Bcc." + }, + "replyTo": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of Reply-To header values for the email." + }, + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The From header for the email." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The recipient of the email." + } + }, + "inner_properties": null, + "description": "A JSON object containing anything you want to override." + }, + "contactProperties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment." + } + }, + "inner_properties": null, + "description": "A request object describing the email to send." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"A request object describing the email to send.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"emailId\",\n \"message\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"customProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"The customProperties field is a map of property values. Each property value contains a name and value property. Each property will be visible in the template under {{ custom.NAME }}.\\nNote: Custom properties do not currently support arrays. To provide a listing in an email, one workaround is to build an HTML list (either with tables or ul) and specify it as a custom property.\"\n },\n \"emailId\": {\n \"type\": \"integer\",\n \"description\": \"The content ID for the transactional email, which can be found in email tool UI.\",\n \"format\": \"int32\"\n },\n \"message\": {\n \"required\": [\n \"to\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"cc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Cc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sendId\": {\n \"type\": \"string\",\n \"description\": \"ID for a particular send. No more than one email will be sent per sendId.\"\n },\n \"bcc\": {\n \"type\": \"array\",\n \"description\": \"List of email addresses to send as Bcc.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"replyTo\": {\n \"type\": \"array\",\n \"description\": \"List of Reply-To header values for the email.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"from\": {\n \"type\": \"string\",\n \"description\": \"The From header for the email.\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"The recipient of the email.\"\n }\n },\n \"description\": \"A JSON object containing anything you want to override.\"\n },\n \"contactProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"The contactProperties field is a map of contact property values. Each contact property value contains a name and value property. Each property will get set on the contact record and will be visible in the template under {{ contact.NAME }}. Use these properties when you want to set a contact property while you\\u2019re sending the email. For example, when sending a reciept you may want to set a last_paid_date property, as the sending of the receipt will have information about the last payment.\"\n }\n },\n \"description\": \"A request to send a single transactional email asynchronously.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UnpublishMarketingEmail.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UnpublishMarketingEmail.json new file mode 100644 index 00000000..a26fbdab --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UnpublishMarketingEmail.json @@ -0,0 +1,110 @@ +{ + "name": "UnpublishMarketingEmail", + "fully_qualified_name": "HubspotMarketingApi.UnpublishMarketingEmail@0.1.0", + "description": "Unpublish a HubSpot marketing email.\n\nThis tool is used to unpublish a specific email in HubSpot Marketing. It should be called when you want to deactivate or withdraw an email from being publicly available.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_identifier", + "required": true, + "description": "The unique identifier of the email you wish to unpublish in HubSpot Marketing.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/emails/{emailId}/unpublish'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing-email", + "transactional-email" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/unpublish", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBatch.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBatch.json new file mode 100644 index 00000000..0c44226c --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBatch.json @@ -0,0 +1,161 @@ +{ + "name": "UpdateCampaignBatch", + "fully_qualified_name": "HubspotMarketingApi.UpdateCampaignBatch@0.1.0", + "description": "Update a batch of marketing campaigns efficiently.\n\nUse this tool to update multiple marketing campaigns in a single request. The tool handles up to 50 campaigns per request, and can reset property values when an empty string is provided.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_update_details", + "required": true, + "description": "JSON array of campaign data to be updated. Each entry requires an 'id' and 'properties' object.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/campaigns/batch/update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "campaign_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"id\",\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBudget.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBudget.json new file mode 100644 index 00000000..23b1b425 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignBudget.json @@ -0,0 +1,274 @@ +{ + "name": "UpdateCampaignBudget", + "fully_qualified_name": "HubspotMarketingApi.UpdateCampaignBudget@0.1.0", + "description": "Update a specific campaign budget item by ID.\n\nUse this tool to update a particular budget item in a marketing campaign by providing the campaign GUID and the budget ID.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "A unique identifier for the campaign. Use this to specify which campaign's budget item to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "budget_id", + "required": true, + "description": "Unique identifier for the budget item to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "budgetId" + }, + { + "name": "budget_amount", + "required": true, + "description": "The amount to set for the budget item. This is a numerical value representing the budget in the specified currency.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "amount" + }, + { + "name": "budget_item_name", + "required": true, + "description": "The new name for the budget item. It should be a descriptive label that clearly identifies the budget item within the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "priority_order", + "required": true, + "description": "Specify the order in which the budget item appears. Accepted values are integers.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "budget_item_description", + "required": false, + "description": "A string to describe the budget item. Provide a brief explanation of what this budget is for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "budgetId", + "tool_parameter_name": "budget_id", + "description": "Unique identifier for the budget item.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the budget item." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "amount", + "tool_parameter_name": "budget_amount", + "description": "", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "budget_item_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "budget_item_description", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "priority_order", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignProperties.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignProperties.json new file mode 100644 index 00000000..1bc2ed91 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignProperties.json @@ -0,0 +1,160 @@ +{ + "name": "UpdateCampaignProperties", + "fully_qualified_name": "HubspotMarketingApi.UpdateCampaignProperties@0.1.0", + "description": "Update properties of a HubSpot marketing campaign.\n\nUse this tool to perform a partial update of a marketing campaign in HubSpot by providing the campaignGuid and the new property values. Note that only existing, mutable properties can be updated; read-only and non-existent properties will cause an error. Passing an empty string will reset a property's value.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_uuid", + "required": true, + "description": "Unique identifier for the campaign, formatted as a UUID.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID.\n" + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "campaign_update_properties", + "required": true, + "description": "A JSON object containing the properties with their new values. Include only mutable properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/marketing/v3/campaigns/{campaignGuid}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_uuid", + "description": "Unique identifier for the campaign, formatted as a UUID.\n", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign, formatted as a UUID.\n" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "campaign_update_properties", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"properties\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignSpend.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignSpend.json new file mode 100644 index 00000000..1510bdea --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateCampaignSpend.json @@ -0,0 +1,274 @@ +{ + "name": "UpdateCampaignSpend", + "fully_qualified_name": "HubspotMarketingApi.UpdateCampaignSpend@0.1.0", + "description": "Update a specific campaign spend item by ID.\n\nUse this tool to modify the details of a particular spend item in a marketing campaign by providing the campaign and spend identifiers.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "campaign_guid", + "required": true, + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "inferrable": true, + "http_endpoint_parameter_name": "campaignGuid" + }, + { + "name": "spend_identifier", + "required": true, + "description": "Unique identifier for the spend item in the campaign to be updated.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "inferrable": true, + "http_endpoint_parameter_name": "spendId" + }, + { + "name": "spend_amount", + "required": true, + "description": "The new amount value for the campaign spend. Specify this as a number representing the monetary value.", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "amount" + }, + { + "name": "spend_item_name", + "required": true, + "description": "The new name for the campaign spend item. This should be a descriptive string defining the spend item.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "name" + }, + { + "name": "spend_order", + "required": true, + "description": "The order or sequence number of the spend item within the campaign. It determines the priority or arrangement of the spend items.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "spend_item_description", + "required": false, + "description": "Details or notes about the campaign spend item.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "description" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "marketing.campaigns.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/campaigns/{campaignGuid}/spend/{spendId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "campaignGuid", + "tool_parameter_name": "campaign_guid", + "description": "Unique identifier for the campaign.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the campaign." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "spendId", + "tool_parameter_name": "spend_identifier", + "description": "Unique identifier for the spend item.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique identifier for the spend item." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "amount", + "tool_parameter_name": "spend_amount", + "description": "", + "value_schema": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "name", + "tool_parameter_name": "spend_item_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "description", + "tool_parameter_name": "spend_item_description", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "spend_order", + "description": "", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"amount\",\n \"name\",\n \"order\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"amount\": {\n \"type\": \"number\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"order\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateEmailDraft.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateEmailDraft.json new file mode 100644 index 00000000..fba39083 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateEmailDraft.json @@ -0,0 +1,4170 @@ +{ + "name": "UpdateEmailDraft", + "fully_qualified_name": "HubspotMarketingApi.UpdateEmailDraft@0.1.0", + "description": "Create or update the draft version of a marketing email.\n\nThis tool creates or updates the draft version of a marketing email. If no draft exists, it creates a draft from the current live email and applies changes. Use this tool to modify email drafts before finalizing them.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_id", + "required": true, + "description": "The unique identifier of the marketing email to update or create a draft for. This is required to specify which email draft you are modifying.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "marketing_email_object", + "required": true, + "description": "A JSON object representing marketing email details to update or create a draft. Includes content, subject, publish date, language, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "A marketing email object with properties that should overwrite the corresponding properties in the email's current draft." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/marketing/v3/emails/{emailId}/draft'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}/draft", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "marketing_email_object", + "description": "A marketing email object with properties that should overwrite the corresponding properties in the email's current draft.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "A marketing email object with properties that should overwrite the corresponding properties in the email's current draft." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"A marketing email object with properties that should overwrite the corresponding properties in the email's current draft.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"rssData\": {\n \"type\": \"object\",\n \"properties\": {\n \"blogImageMaxWidth\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"blogEmailType\": {\n \"type\": \"string\"\n },\n \"hubspotBlogId\": {\n \"type\": \"string\"\n },\n \"rssEntryTemplate\": {\n \"type\": \"string\"\n },\n \"timing\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"useHeadlineAsSubject\": {\n \"type\": \"boolean\"\n },\n \"blogLayout\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"RSS related data if it is a blog or rss email.\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"The subject of the email.\"\n },\n \"testing\": {\n \"type\": \"object\",\n \"properties\": {\n \"isAbVariation\": {\n \"type\": \"boolean\"\n },\n \"abSamplingDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if the results are inconclusive after the test period, master or variant.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abSampleSizeDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if there are too few recipients to conduct an AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abStatus\": {\n \"type\": \"string\",\n \"description\": \"Status of the AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abTestPercentage\": {\n \"type\": \"integer\",\n \"description\": \"The size of your test group.\",\n \"format\": \"int32\"\n },\n \"hoursToWait\": {\n \"type\": \"integer\",\n \"description\": \"Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.\",\n \"format\": \"int32\"\n },\n \"testId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the AB test.\"\n },\n \"abSuccessMetric\": {\n \"type\": \"string\",\n \"description\": \"Metric to determine the version that will be sent to the remaining contacts.\",\n \"enum\": [\n \"CLICKS_BY_OPENS\",\n \"CLICKS_BY_DELIVERED\",\n \"OPENS_BY_DELIVERED\"\n ]\n }\n },\n \"description\": \"AB testing related data. This property is only returned for AB type emails.\"\n },\n \"publishDate\": {\n \"type\": \"string\",\n \"description\": \"The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.\",\n \"format\": \"date-time\"\n },\n \"language\": {\n \"type\": \"string\",\n \"enum\": [\n \"af\",\n \"af-na\",\n \"af-za\",\n \"agq\",\n \"agq-cm\",\n \"ak\",\n \"ak-gh\",\n \"am\",\n \"am-et\",\n \"ann\",\n \"ann-ng\",\n \"ar\",\n \"ar-001\",\n \"ar-ae\",\n \"ar-bh\",\n \"ar-dj\",\n \"ar-dz\",\n \"ar-eg\",\n \"ar-eh\",\n \"ar-er\",\n \"ar-il\",\n \"ar-iq\",\n \"ar-jo\",\n \"ar-km\",\n \"ar-kw\",\n \"ar-lb\",\n \"ar-ly\",\n \"ar-ma\",\n \"ar-mr\",\n \"ar-om\",\n \"ar-ps\",\n \"ar-qa\",\n \"ar-sa\",\n \"ar-sd\",\n \"ar-so\",\n \"ar-ss\",\n \"ar-sy\",\n \"ar-td\",\n \"ar-tn\",\n \"ar-ye\",\n \"as\",\n \"asa\",\n \"asa-tz\",\n \"ast\",\n \"ast-es\",\n \"as-in\",\n \"az\",\n \"az-az\",\n \"bas\",\n \"bas-cm\",\n \"be\",\n \"bem\",\n \"bem-zm\",\n \"bez\",\n \"bez-tz\",\n \"be-by\",\n \"bg\",\n \"bgc\",\n \"bgc-in\",\n \"bg-bg\",\n \"bho\",\n \"bho-in\",\n \"bm\",\n \"bm-ml\",\n \"bn\",\n \"bn-bd\",\n \"bn-in\",\n \"bo\",\n \"bo-cn\",\n \"bo-in\",\n \"br\",\n \"brx\",\n \"brx-in\",\n \"br-fr\",\n \"bs\",\n \"bs-ba\",\n \"ca\",\n \"ca-ad\",\n \"ca-es\",\n \"ca-fr\",\n \"ca-it\",\n \"ccp\",\n \"ccp-bd\",\n \"ccp-in\",\n \"ce\",\n \"ceb\",\n \"ceb-ph\",\n \"ce-ru\",\n \"cgg\",\n \"cgg-ug\",\n \"chr\",\n \"chr-us\",\n \"ckb\",\n \"ckb-iq\",\n \"ckb-ir\",\n \"cs\",\n \"cs-cz\",\n \"cu\",\n \"cu-ru\",\n \"cv\",\n \"cv-ru\",\n \"cy\",\n \"cy-gb\",\n \"da\",\n \"dav\",\n \"dav-ke\",\n \"da-dk\",\n \"da-gl\",\n \"de\",\n \"de-at\",\n \"de-be\",\n \"de-ch\",\n \"de-de\",\n \"de-gr\",\n \"de-it\",\n \"de-li\",\n \"de-lu\",\n \"dje\",\n \"dje-ne\",\n \"doi\",\n \"doi-in\",\n \"dsb\",\n \"dsb-de\",\n \"dua\",\n \"dua-cm\",\n \"dyo\",\n \"dyo-sn\",\n \"dz\",\n \"dz-bt\",\n \"ebu\",\n \"ebu-ke\",\n \"ee\",\n \"ee-gh\",\n \"ee-tg\",\n \"el\",\n \"el-cy\",\n \"el-gr\",\n \"en\",\n \"en-001\",\n \"en-150\",\n \"en-ae\",\n \"en-ag\",\n \"en-ai\",\n \"en-as\",\n \"en-at\",\n \"en-au\",\n \"en-bb\",\n \"en-be\",\n \"en-bi\",\n \"en-bm\",\n \"en-bs\",\n \"en-bw\",\n \"en-bz\",\n \"en-ca\",\n \"en-cc\",\n \"en-ch\",\n \"en-ck\",\n \"en-cm\",\n \"en-cn\",\n \"en-cx\",\n \"en-cy\",\n \"en-de\",\n \"en-dg\",\n \"en-dk\",\n \"en-dm\",\n \"en-ee\",\n \"en-eg\",\n \"en-er\",\n \"en-es\",\n \"en-fi\",\n \"en-fj\",\n \"en-fk\",\n \"en-fm\",\n \"en-fr\",\n \"en-gb\",\n \"en-gd\",\n \"en-gg\",\n \"en-gh\",\n \"en-gi\",\n \"en-gm\",\n \"en-gu\",\n \"en-gy\",\n \"en-hk\",\n \"en-ie\",\n \"en-il\",\n \"en-im\",\n \"en-in\",\n \"en-io\",\n \"en-je\",\n \"en-jm\",\n \"en-ke\",\n \"en-ki\",\n \"en-kn\",\n \"en-ky\",\n \"en-lc\",\n \"en-lr\",\n \"en-ls\",\n \"en-lu\",\n \"en-mg\",\n \"en-mh\",\n \"en-mo\",\n \"en-mp\",\n \"en-ms\",\n \"en-mt\",\n \"en-mu\",\n \"en-mv\",\n \"en-mw\",\n \"en-mx\",\n \"en-my\",\n \"en-na\",\n \"en-nf\",\n \"en-ng\",\n \"en-nl\",\n \"en-nr\",\n \"en-nu\",\n \"en-nz\",\n \"en-pg\",\n \"en-ph\",\n \"en-pk\",\n \"en-pn\",\n \"en-pr\",\n \"en-pw\",\n \"en-rw\",\n \"en-sb\",\n \"en-sc\",\n \"en-sd\",\n \"en-se\",\n \"en-sg\",\n \"en-sh\",\n \"en-si\",\n \"en-sl\",\n \"en-ss\",\n \"en-sx\",\n \"en-sz\",\n \"en-tc\",\n \"en-tk\",\n \"en-tn\",\n \"en-to\",\n \"en-tt\",\n \"en-tv\",\n \"en-tz\",\n \"en-ug\",\n \"en-um\",\n \"en-us\",\n \"en-vc\",\n \"en-vg\",\n \"en-vi\",\n \"en-vu\",\n \"en-ws\",\n \"en-za\",\n \"en-zm\",\n \"en-zw\",\n \"eo\",\n \"eo-001\",\n \"es\",\n \"es-419\",\n \"es-ar\",\n \"es-bo\",\n \"es-br\",\n \"es-bz\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-cu\",\n \"es-do\",\n \"es-ea\",\n \"es-ec\",\n \"es-es\",\n \"es-gq\",\n \"es-gt\",\n \"es-hn\",\n \"es-ic\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-pe\",\n \"es-ph\",\n \"es-pr\",\n \"es-py\",\n \"es-sv\",\n \"es-us\",\n \"es-uy\",\n \"es-ve\",\n \"et\",\n \"et-ee\",\n \"eu\",\n \"eu-es\",\n \"ewo\",\n \"ewo-cm\",\n \"fa\",\n \"fa-af\",\n \"fa-ir\",\n \"ff\",\n \"ff-bf\",\n \"ff-cm\",\n \"ff-gh\",\n \"ff-gm\",\n \"ff-gn\",\n \"ff-gw\",\n \"ff-lr\",\n \"ff-mr\",\n \"ff-ne\",\n \"ff-ng\",\n \"ff-sl\",\n \"ff-sn\",\n \"fi\",\n \"fil\",\n \"fil-ph\",\n \"fi-fi\",\n \"fo\",\n \"fo-dk\",\n \"fo-fo\",\n \"fr\",\n \"frr\",\n \"frr-de\",\n \"fr-be\",\n \"fr-bf\",\n \"fr-bi\",\n \"fr-bj\",\n \"fr-bl\",\n \"fr-ca\",\n \"fr-cd\",\n \"fr-cf\",\n \"fr-cg\",\n \"fr-ch\",\n \"fr-ci\",\n \"fr-cm\",\n \"fr-dj\",\n \"fr-dz\",\n \"fr-fr\",\n \"fr-ga\",\n \"fr-gf\",\n \"fr-gn\",\n \"fr-gp\",\n \"fr-gq\",\n \"fr-ht\",\n \"fr-km\",\n \"fr-lu\",\n \"fr-ma\",\n \"fr-mc\",\n \"fr-mf\",\n \"fr-mg\",\n \"fr-ml\",\n \"fr-mq\",\n \"fr-mr\",\n \"fr-mu\",\n \"fr-nc\",\n \"fr-ne\",\n \"fr-pf\",\n \"fr-pm\",\n \"fr-re\",\n \"fr-rw\",\n \"fr-sc\",\n \"fr-sn\",\n \"fr-sy\",\n \"fr-td\",\n \"fr-tg\",\n \"fr-tn\",\n \"fr-vu\",\n \"fr-wf\",\n \"fr-yt\",\n \"fur\",\n \"fur-it\",\n \"fy\",\n \"fy-nl\",\n \"ga\",\n \"ga-gb\",\n \"ga-ie\",\n \"gd\",\n \"gd-gb\",\n \"gl\",\n \"gl-es\",\n \"gsw\",\n \"gsw-ch\",\n \"gsw-fr\",\n \"gsw-li\",\n \"gu\",\n \"guz\",\n \"guz-ke\",\n \"gu-in\",\n \"gv\",\n \"gv-im\",\n \"ha\",\n \"haw\",\n \"haw-us\",\n \"ha-gh\",\n \"ha-ne\",\n \"ha-ng\",\n \"he\",\n \"he-il\",\n \"hi\",\n \"hi-in\",\n \"hr\",\n \"hr-ba\",\n \"hr-hr\",\n \"hsb\",\n \"hsb-de\",\n \"hu\",\n \"hu-hu\",\n \"hy\",\n \"hy-am\",\n \"ia\",\n \"ia-001\",\n \"id\",\n \"ig\",\n \"ig-ng\",\n \"ii\",\n \"ii-cn\",\n \"id-id\",\n \"is\",\n \"is-is\",\n \"it\",\n \"it-ch\",\n \"it-it\",\n \"it-sm\",\n \"it-va\",\n \"ja\",\n \"ja-jp\",\n \"jgo\",\n \"jgo-cm\",\n \"yi\",\n \"yi-001\",\n \"jmc\",\n \"jmc-tz\",\n \"jv\",\n \"jv-id\",\n \"ka\",\n \"kab\",\n \"kab-dz\",\n \"kam\",\n \"kam-ke\",\n \"ka-ge\",\n \"kde\",\n \"kde-tz\",\n \"kea\",\n \"kea-cv\",\n \"kgp\",\n \"kgp-br\",\n \"khq\",\n \"khq-ml\",\n \"ki\",\n \"ki-ke\",\n \"kk\",\n \"kkj\",\n \"kkj-cm\",\n \"kk-kz\",\n \"kl\",\n \"kln\",\n \"kln-ke\",\n \"kl-gl\",\n \"km\",\n \"km-kh\",\n \"kn\",\n \"kn-in\",\n \"ko\",\n \"kok\",\n \"kok-in\",\n \"ko-kp\",\n \"ko-kr\",\n \"ks\",\n \"ksb\",\n \"ksb-tz\",\n \"ksf\",\n \"ksf-cm\",\n \"ksh\",\n \"ksh-de\",\n \"ks-in\",\n \"ku\",\n \"ku-tr\",\n \"kw\",\n \"kw-gb\",\n \"ky\",\n \"ky-kg\",\n \"lag\",\n \"lag-tz\",\n \"lb\",\n \"lb-lu\",\n \"lg\",\n \"lg-ug\",\n \"lkt\",\n \"lkt-us\",\n \"ln\",\n \"ln-ao\",\n \"ln-cd\",\n \"ln-cf\",\n \"ln-cg\",\n \"lo\",\n \"lo-la\",\n \"lrc\",\n \"lrc-iq\",\n \"lrc-ir\",\n \"lt\",\n \"lt-lt\",\n \"lu\",\n \"luo\",\n \"luo-ke\",\n \"luy\",\n \"luy-ke\",\n \"lu-cd\",\n \"lv\",\n \"lv-lv\",\n \"mai\",\n \"mai-in\",\n \"mas\",\n \"mas-ke\",\n \"mas-tz\",\n \"mdf\",\n \"mdf-ru\",\n \"mer\",\n \"mer-ke\",\n \"mfe\",\n \"mfe-mu\",\n \"mg\",\n \"mgh\",\n \"mgh-mz\",\n \"mgo\",\n \"mgo-cm\",\n \"mg-mg\",\n \"mi\",\n \"mi-nz\",\n \"mk\",\n \"mk-mk\",\n \"ml\",\n \"ml-in\",\n \"mn\",\n \"mni\",\n \"mni-in\",\n \"mn-mn\",\n \"mr\",\n \"mr-in\",\n \"ms\",\n \"ms-bn\",\n \"ms-id\",\n \"ms-my\",\n \"ms-sg\",\n \"mt\",\n \"mt-mt\",\n \"mua\",\n \"mua-cm\",\n \"my\",\n \"my-mm\",\n \"mzn\",\n \"mzn-ir\",\n \"naq\",\n \"naq-na\",\n \"nb\",\n \"nb-no\",\n \"nb-sj\",\n \"nd\",\n \"nds\",\n \"nds-de\",\n \"nds-nl\",\n \"nd-zw\",\n \"ne\",\n \"ne-in\",\n \"ne-np\",\n \"nl\",\n \"nl-aw\",\n \"nl-be\",\n \"nl-bq\",\n \"nl-ch\",\n \"nl-cw\",\n \"nl-lu\",\n \"nl-nl\",\n \"nl-sr\",\n \"nl-sx\",\n \"nmg\",\n \"nmg-cm\",\n \"nn\",\n \"nnh\",\n \"nnh-cm\",\n \"nn-no\",\n \"no\",\n \"no-no\",\n \"nus\",\n \"nus-ss\",\n \"nyn\",\n \"nyn-ug\",\n \"oc\",\n \"oc-es\",\n \"oc-fr\",\n \"om\",\n \"om-et\",\n \"om-ke\",\n \"or\",\n \"or-in\",\n \"os\",\n \"os-ge\",\n \"os-ru\",\n \"pa\",\n \"pa-in\",\n \"pa-pk\",\n \"pcm\",\n \"pcm-ng\",\n \"pis\",\n \"pis-sb\",\n \"pl\",\n \"pl-pl\",\n \"prg\",\n \"prg-001\",\n \"ps\",\n \"ps-af\",\n \"ps-pk\",\n \"pt\",\n \"pt-ao\",\n \"pt-br\",\n \"pt-ch\",\n \"pt-cv\",\n \"pt-gq\",\n \"pt-gw\",\n \"pt-lu\",\n \"pt-mo\",\n \"pt-mz\",\n \"pt-pt\",\n \"pt-st\",\n \"pt-tl\",\n \"qu\",\n \"qu-bo\",\n \"qu-ec\",\n \"qu-pe\",\n \"raj\",\n \"raj-in\",\n \"rm\",\n \"rm-ch\",\n \"rn\",\n \"rn-bi\",\n \"ro\",\n \"rof\",\n \"rof-tz\",\n \"ro-md\",\n \"ro-ro\",\n \"ru\",\n \"ru-by\",\n \"ru-kg\",\n \"ru-kz\",\n \"ru-md\",\n \"ru-ru\",\n \"ru-ua\",\n \"rw\",\n \"rwk\",\n \"rwk-tz\",\n \"rw-rw\",\n \"sa\",\n \"sah\",\n \"sah-ru\",\n \"saq\",\n \"saq-ke\",\n \"sat\",\n \"sat-in\",\n \"sa-in\",\n \"sbp\",\n \"sbp-tz\",\n \"sc\",\n \"sc-it\",\n \"sd\",\n \"sd-in\",\n \"sd-pk\",\n \"se\",\n \"seh\",\n \"seh-mz\",\n \"ses\",\n \"ses-ml\",\n \"se-fi\",\n \"se-no\",\n \"se-se\",\n \"sg\",\n \"sg-cf\",\n \"shi\",\n \"shi-ma\",\n \"si\",\n \"si-lk\",\n \"sk\",\n \"sk-sk\",\n \"sl\",\n \"sl-si\",\n \"smn\",\n \"smn-fi\",\n \"sms\",\n \"sms-fi\",\n \"sn\",\n \"sn-zw\",\n \"so\",\n \"so-dj\",\n \"so-et\",\n \"so-ke\",\n \"so-so\",\n \"sq\",\n \"sq-al\",\n \"sq-mk\",\n \"sq-xk\",\n \"sr\",\n \"sr-ba\",\n \"sr-cs\",\n \"sr-me\",\n \"sr-rs\",\n \"sr-xk\",\n \"su\",\n \"su-id\",\n \"sv\",\n \"sv-ax\",\n \"sv-fi\",\n \"sv-se\",\n \"sw\",\n \"sw-cd\",\n \"sw-ke\",\n \"sw-tz\",\n \"sw-ug\",\n \"sy\",\n \"ta\",\n \"ta-in\",\n \"ta-lk\",\n \"ta-my\",\n \"ta-sg\",\n \"te\",\n \"teo\",\n \"teo-ke\",\n \"teo-ug\",\n \"te-in\",\n \"tg\",\n \"tg-tj\",\n \"th\",\n \"th-th\",\n \"ti\",\n \"ti-er\",\n \"ti-et\",\n \"tk\",\n \"tk-tm\",\n \"tl\",\n \"to\",\n \"tok\",\n \"tok-001\",\n \"to-to\",\n \"tr\",\n \"tr-cy\",\n \"tr-tr\",\n \"tt\",\n \"tt-ru\",\n \"twq\",\n \"twq-ne\",\n \"tzm\",\n \"tzm-ma\",\n \"ug\",\n \"ug-cn\",\n \"uk\",\n \"uk-ua\",\n \"ur\",\n \"ur-in\",\n \"ur-pk\",\n \"uz\",\n \"uz-af\",\n \"uz-uz\",\n \"vai\",\n \"vai-lr\",\n \"vi\",\n \"vi-vn\",\n \"vo\",\n \"vo-001\",\n \"vun\",\n \"vun-tz\",\n \"wae\",\n \"wae-ch\",\n \"wo\",\n \"wo-sn\",\n \"xh\",\n \"xh-za\",\n \"xog\",\n \"xog-ug\",\n \"yav\",\n \"yav-cm\",\n \"yo\",\n \"yo-bj\",\n \"yo-ng\",\n \"yrl\",\n \"yrl-br\",\n \"yrl-co\",\n \"yrl-ve\",\n \"yue\",\n \"yue-cn\",\n \"yue-hk\",\n \"zgh\",\n \"zgh-ma\",\n \"zh\",\n \"zh-cn\",\n \"zh-hans\",\n \"zh-hant\",\n \"zh-hk\",\n \"zh-mo\",\n \"zh-sg\",\n \"zh-tw\",\n \"zu\",\n \"zu-za\"\n ]\n },\n \"businessUnitId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"content\": {\n \"type\": \"object\",\n \"properties\": {\n \"smartFields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"An email field whose value is controlled by one or more smart rules.\"\n }\n },\n \"themeSettingsValues\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"flexAreas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"widgets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"plainTextVersion\": {\n \"type\": \"string\"\n },\n \"templatePath\": {\n \"type\": \"string\"\n },\n \"widgetContainers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"styleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"backgroundImage\": {\n \"type\": \"string\"\n },\n \"backgroundImageType\": {\n \"type\": \"string\"\n },\n \"bodyColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderWidth\": {\n \"type\": \"number\"\n },\n \"bodyBorderColorChoice\": {\n \"type\": \"string\"\n },\n \"primaryFont\": {\n \"type\": \"string\"\n },\n \"primaryFontColor\": {\n \"type\": \"string\"\n },\n \"primaryAccentColor\": {\n \"type\": \"string\"\n },\n \"primaryFontSize\": {\n \"type\": \"number\"\n },\n \"primaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"secondaryFont\": {\n \"type\": \"string\"\n },\n \"secondaryFontColor\": {\n \"type\": \"string\"\n },\n \"secondaryAccentColor\": {\n \"type\": \"string\"\n },\n \"secondaryFontSize\": {\n \"type\": \"number\"\n },\n \"secondaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"headingOneFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"headingTwoFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"linksFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"colorPickerFavorite1\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite2\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite3\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite4\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite5\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite6\": {\n \"type\": \"string\"\n },\n \"emailBodyPadding\": {\n \"type\": \"string\"\n },\n \"emailBodyWidth\": {\n \"type\": \"string\"\n },\n \"buttonStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"cornerRadius\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"fontStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"dividerStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"height\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"lineType\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"description\": \"Data structure representing the content of the email.\"\n },\n \"webversion\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"redirectToPageId\": {\n \"type\": \"string\"\n },\n \"isPageRedirected\": {\n \"type\": \"boolean\"\n },\n \"redirectToUrl\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"pageExpiryEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Determines if the email is archived or not.\"\n },\n \"subscriptionDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"officeLocationId\": {\n \"type\": \"string\",\n \"description\": \"ID of the selected office location.\"\n },\n \"subscriptionName\": {\n \"type\": \"string\"\n },\n \"preferencesGroupId\": {\n \"type\": \"string\"\n },\n \"subscriptionId\": {\n \"type\": \"string\",\n \"description\": \"ID of the subscription.\"\n }\n },\n \"description\": \"Data structure representing the subscription fields of the email.\"\n },\n \"activeDomain\": {\n \"type\": \"string\",\n \"description\": \"The active domain of the email.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the email, as displayed on the email dashboard.\"\n },\n \"campaign\": {\n \"type\": \"string\",\n \"description\": \"The ID of the campaign this email is associated to.\"\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"customReplyTo\": {\n \"type\": \"string\",\n \"description\": \"The reply to recipients will see.\"\n },\n \"fromName\": {\n \"type\": \"string\",\n \"description\": \"The name recipients will see.\"\n },\n \"replyTo\": {\n \"type\": \"string\",\n \"description\": \"The from address and reply to email address (if no customReplyTo defined) recipients will see.\"\n }\n },\n \"description\": \"Data structure representing the from fields on the email.\"\n },\n \"jitterSendTime\": {\n \"type\": \"boolean\"\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"The email state.\",\n \"enum\": [\n \"AUTOMATED\",\n \"AUTOMATED_DRAFT\",\n \"AUTOMATED_SENDING\",\n \"AUTOMATED_FOR_FORM\",\n \"AUTOMATED_FOR_FORM_BUFFER\",\n \"AUTOMATED_FOR_FORM_DRAFT\",\n \"AUTOMATED_FOR_FORM_LEGACY\",\n \"BLOG_EMAIL_DRAFT\",\n \"BLOG_EMAIL_PUBLISHED\",\n \"DRAFT\",\n \"DRAFT_AB\",\n \"DRAFT_AB_VARIANT\",\n \"ERROR\",\n \"LOSER_AB_VARIANT\",\n \"PAGE_STUB\",\n \"PRE_PROCESSING\",\n \"PROCESSING\",\n \"PUBLISHED\",\n \"PUBLISHED_AB\",\n \"PUBLISHED_AB_VARIANT\",\n \"PUBLISHED_OR_SCHEDULED\",\n \"RSS_TO_EMAIL_DRAFT\",\n \"RSS_TO_EMAIL_PUBLISHED\",\n \"SCHEDULED\",\n \"SCHEDULED_AB\",\n \"SCHEDULED_OR_PUBLISHED\",\n \"AUTOMATED_AB\",\n \"AUTOMATED_AB_VARIANT\",\n \"AUTOMATED_DRAFT_AB\",\n \"AUTOMATED_DRAFT_ABVARIANT\",\n \"AUTOMATED_LOSER_ABVARIANT\",\n \"AGENT_GENERATED\"\n ]\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"contactIlsLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"limitSendFrequency\": {\n \"type\": \"boolean\"\n },\n \"suppressGraymail\": {\n \"type\": \"boolean\"\n },\n \"contactIds\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"contactLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n }\n },\n \"description\": \"Data structure representing the to fields of the email.\"\n },\n \"subcategory\": {\n \"type\": \"string\",\n \"description\": \"The email subcategory.\",\n \"enum\": [\n \"ab_master\",\n \"ab_variant\",\n \"ab_loser_variant\",\n \"page_stub\",\n \"landing_page\",\n \"site_page\",\n \"legacy_page\",\n \"ab_master_site_page\",\n \"ab_variant_site_page\",\n \"ab_loser_variant_site_page\",\n \"performable_landing_page\",\n \"performable_landing_page_cutover\",\n \"staged_page\",\n \"automated\",\n \"automated_for_deal\",\n \"automated_for_form\",\n \"automated_for_form_legacy\",\n \"automated_for_form_buffer\",\n \"automated_for_form_draft\",\n \"rss_to_email\",\n \"rss_to_email_child\",\n \"blog_email\",\n \"blog_email_child\",\n \"optin_email\",\n \"optin_followup_email\",\n \"batch\",\n \"resubscribe_email\",\n \"unsubscribe_confirmation_email\",\n \"resubscribe_confirmation_email\",\n \"single_send_api\",\n \"marketing_single_send_api\",\n \"smtp_token\",\n \"localtime\",\n \"automated_for_ticket\",\n \"automated_for_leadflow\",\n \"automated_for_feedback_ces\",\n \"automated_for_feedback_nps\",\n \"automated_for_feedback_custom\",\n \"membership_registration\",\n \"membership_password_saved\",\n \"membership_password_reset\",\n \"membership_otp_login\",\n \"membership_passwordless_auth\",\n \"membership_email_verification\",\n \"membership_registration_follow_up\",\n \"membership_verification\",\n \"membership_follow_up\",\n \"ticket_closed_kickback_email\",\n \"ticket_opened_kickback_email\",\n \"automated_for_custom_survey\",\n \"discardable_stub\",\n \"normal_blog_post\",\n \"legacy_blog_post\",\n \"imported_blog_post\",\n \"automated_ab_master\",\n \"automated_ab_variant\",\n \"web_interactive\",\n \"portal_content\",\n \"page_instance_layout\",\n \"kb_article_instance_layout\",\n \"kb_listing\",\n \"kb_search_results\",\n \"kb_support_form\",\n \"kb_404_page\",\n \"case_study\",\n \"case_study_listing\",\n \"case_study_instance_layout\",\n \"scp_static_page\",\n \"scp_instance_layout_page\",\n \"podcast_instance_layout\",\n \"podcast_listing\",\n \"blog_article_instance_layout\",\n \"blog_article_listing\",\n \"blog_author_detail\",\n \"UNKNOWN\"\n ]\n },\n \"sendOnPublish\": {\n \"type\": \"boolean\",\n \"description\": \"Determines whether the email will be sent immediately on publish.\"\n }\n },\n \"description\": \"Properties of a marketing email you can update via the API.\",\n \"example\": {\n \"activeDomain\": \"test.hs-sites.com\",\n \"archived\": false,\n \"campaign\": \"1b7f51a6-33c1-44d6-ba28-fe81f655dced\",\n \"content\": {\n \"flexAreas\": {\n \"main\": {\n \"boxed\": false,\n \"isSingleColumnFullWidth\": false,\n \"sections\": [\n {\n \"columns\": [\n {\n \"id\": \"column_1606761806181_0\",\n \"widgets\": [\n \"module_160676180617911\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section_1606761806181\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-0-1\",\n \"widgets\": [\n \"module-0-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-0\",\n \"style\": {\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"40px\",\n \"paddingTop\": \"40px\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-1-1\",\n \"widgets\": [\n \"module-1-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-1\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"0px\",\n \"paddingTop\": \"0px\"\n }\n }\n ]\n }\n },\n \"plainTextVersion\": \"This is custom! View in browser ({{view_as_page_url}})\\n\\nHello {{ contact.firstname }},\\n\\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.\\n\\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\\n\\nLink text\\n\\nNow it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\\n\\nAll the best,\\n\\nYour full name\\n\\nYour job title\\n\\nOther contact information\\n\\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\\n\\nUnsubscribe ({{unsubscribe_link_all}})\\n\\nManage preferences ({{unsubscribe_link}})\",\n \"styleSettings\": {},\n \"widgets\": {\n \"module-0-1-1\": {\n \"body\": {\n \"css_class\": \"dnd-module\",\n \"html\": \"

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

\",\n \"i18nKey\": \"richText.plainText\",\n \"path\": \"@hubspot/rich_text\",\n \"schema_version\": 2\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-0-1-1\",\n \"module_id\": 1155639,\n \"name\": \"module-0-1-1\",\n \"order\": 2,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module-1-1-1\": {\n \"body\": {\n \"align\": \"center\",\n \"css_class\": \"dnd-module\",\n \"font\": {\n \"color\": \"#23496d\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n }\n },\n \"link_font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Helvetica,Arial,sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"path\": \"@hubspot/email_footer\",\n \"schema_version\": 2,\n \"unsubscribe_link_type\": \"both\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-1-1-1\",\n \"module_id\": 2869621,\n \"name\": \"module-1-1-1\",\n \"order\": 3,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module_160676180617911\": {\n \"body\": {\n \"font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"hs_enable_module_padding\": false,\n \"hs_wrapper_css\": {}\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module_160676180617911\",\n \"module_id\": 2794854,\n \"name\": \"module_160676180617911\",\n \"styles\": {},\n \"type\": \"module\"\n },\n \"preview_text\": {\n \"body\": {\n \"value\": \"\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"preview_text\",\n \"label\": \"Preview Text This will be used as the preview text that displays in some email clients\",\n \"name\": \"preview_text\",\n \"order\": 0,\n \"styles\": {},\n \"type\": \"text\"\n }\n }\n },\n \"createdAt\": \"2020-11-30T18:43:17.136Z\",\n \"createdById\": 3739732,\n \"from\": {\n \"fromName\": \"Bruce Wayne\",\n \"replyTo\": \"test@hubspot.com\"\n },\n \"name\": \"My subject\",\n \"publishDate\": \"2023-11-30T18:44:20.387Z\",\n \"sendOnPublish\": true,\n \"state\": \"DRAFT\",\n \"subcategory\": \"batch\",\n \"subject\": \"My subject\",\n \"subscriptionDetails\": {\n \"officeLocationId\": \"5449392956\"\n },\n \"to\": {\n \"contactIds\": {},\n \"contactIlsLists\": {\n \"exclude\": [\n 1\n ],\n \"include\": [\n 5\n ]\n },\n \"suppressGraymail\": true\n },\n \"webversion\": {\n \"expiresAt\": \"2020-11-30T18:44:20.387Z\",\n \"metaDescription\": \"\",\n \"redirectToPageId\": 0,\n \"redirectToUrl\": \"http://www.example.org\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotForm.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotForm.json new file mode 100644 index 00000000..60b8b161 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotForm.json @@ -0,0 +1,142 @@ +{ + "name": "UpdateHubspotForm", + "fully_qualified_name": "HubspotMarketingApi.UpdateHubspotForm@0.1.0", + "description": "Update all fields of a HubSpot form.\n\nUse this tool to update every field in a specified HubSpot form by replacing the current form definition.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "hubspot_form_id", + "required": true, + "description": "The unique identifier for the HubSpot form to update. This ID specifies which form's fields will be replaced.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "formId" + }, + { + "name": "form_fields_data", + "required": true, + "description": "JSON object containing the new definition for the HubSpot form fields.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/forms/{formId}_replace'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "forms" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/forms/{formId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "formId", + "tool_parameter_name": "hubspot_form_id", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "form_fields_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"properties\": {},\n \"allOf\": [\n {\n \"properties\": {},\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/HubSpotFormDefinition\",\n \"has_circular_reference\": true\n }\n ]\n },\n {\n \"required\": [\n \"archived\",\n \"configuration\",\n \"createdAt\",\n \"displayOptions\",\n \"fieldGroups\",\n \"formType\",\n \"id\",\n \"legalConsentOptions\",\n \"name\",\n \"updatedAt\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"formType\": {\n \"type\": \"string\",\n \"default\": \"hubspot\",\n \"enum\": [\n \"hubspot\"\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"archived\": {\n \"type\": \"boolean\"\n },\n \"archivedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"fieldGroups\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"fields\",\n \"groupType\",\n \"richTextType\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"groupType\": {\n \"type\": \"string\",\n \"enum\": [\n \"default_group\",\n \"progressive\",\n \"queued\"\n ]\n },\n \"richTextType\": {\n \"type\": \"string\",\n \"description\": \"The type of rich text included. The default value is text.\",\n \"enum\": [\n \"text\",\n \"image\"\n ]\n },\n \"richText\": {\n \"type\": \"string\",\n \"description\": \"A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields.\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"The form fields included in the group\",\n \"items\": {\n \"oneOf\": [\n {\n \"title\": \"email\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"required\": [\n \"dependentCondition\",\n \"dependentField\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"dependentCondition\": {\n \"required\": [\n \"operator\",\n \"rangeEnd\",\n \"rangeStart\",\n \"value\",\n \"values\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"rangeStart\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"contains\",\n \"doesnt_contain\",\n \"str_starts_with\",\n \"str_ends_with\",\n \"lt\",\n \"lte\",\n \"gt\",\n \"gte\",\n \"between\",\n \"not_between\",\n \"within_time_reverse\",\n \"within_time\",\n \"set_any\",\n \"set_not_any\",\n \"set_all\",\n \"set_not_all\",\n \"set_eq\",\n \"set_neq\",\n \"is_not_empty\"\n ]\n },\n \"rangeEnd\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"A condition based on customer input\"\n },\n \"dependentField\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/EmailField\",\n \"has_circular_reference\": true\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"description\": \"A form field that will be displayed based on what the customer entered in another field.\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"email\",\n \"enum\": [\n \"email\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"blockedEmailDomains\",\n \"useDefaultBlockList\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"useDefaultBlockList\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to block the free email providers.\"\n },\n \"blockedEmailDomains\": {\n \"type\": \"array\",\n \"description\": \"A list of email domains to block.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Describes how an email address should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting an email address.\"\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n }\n },\n \"description\": \"A collection of up to three form fields usually displayed in a row.\"\n }\n },\n \"configuration\": {\n \"required\": [\n \"allowLinkToResetKnownValues\",\n \"archivable\",\n \"cloneable\",\n \"createNewContactForNewEmail\",\n \"editable\",\n \"language\",\n \"notifyContactOwner\",\n \"notifyRecipients\",\n \"postSubmitAction\",\n \"prePopulateKnownValues\",\n \"recaptchaEnabled\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createNewContactForNewEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to create a new contact when a form is submitted with an email address that doesn\\u2019t match any in your existing contacts records.\"\n },\n \"editable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be edited.\"\n },\n \"allowLinkToResetKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission.\"\n },\n \"lifecycleStages\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectTypeId\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"The objectTypeId for both contact and company\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal name of the contact's lifecycle stage set when submitting a form\"\n }\n }\n }\n },\n \"postSubmitAction\": {\n \"required\": [\n \"type\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The action to take after submit. The default action is displaying a thank you message.\",\n \"enum\": [\n \"thank_you\",\n \"redirect_url\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The thank you text or the page to redirect to.\"\n }\n },\n \"description\": \"What should happen after the customer submits the form.\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"The language of the form.\",\n \"enum\": [\n \"af\",\n \"ar-eg\",\n \"bg\",\n \"bn\",\n \"ca-es\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en\",\n \"es\",\n \"es-mx\",\n \"fi\",\n \"fr\",\n \"fr-ca\",\n \"he-il\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"ms\",\n \"nl\",\n \"no-no\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sv\",\n \"th\",\n \"tl\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-cn\",\n \"zh-hk\",\n \"zh-tw\"\n ]\n },\n \"prePopulateKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether contact fields should pre-populate with known information when a contact returns to your site.\"\n },\n \"cloneable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be cloned.\"\n },\n \"notifyContactOwner\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to send a notification email to the contact owner when a submission is received.\"\n },\n \"recaptchaEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether CAPTCHA (spam prevention) is enabled.\"\n },\n \"archivable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be archived.\"\n },\n \"notifyRecipients\": {\n \"type\": \"array\",\n \"description\": \"The list of user IDs to receive a notification email when a submission is received.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"displayOptions\": {\n \"required\": [\n \"renderRawHtml\",\n \"style\",\n \"submitButtonText\",\n \"theme\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"renderRawHtml\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form will render as raw HTML as opposed to inside an iFrame.\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"description\": \"The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.\",\n \"enum\": [\n \"default_style\",\n \"canvas\",\n \"linear\",\n \"round\",\n \"sharp\",\n \"legacy\"\n ]\n },\n \"submitButtonText\": {\n \"type\": \"string\",\n \"description\": \"The text displayed on the form submit button.\"\n },\n \"style\": {\n \"required\": [\n \"backgroundWidth\",\n \"fontFamily\",\n \"helpTextColor\",\n \"helpTextSize\",\n \"labelTextColor\",\n \"labelTextSize\",\n \"legalConsentTextColor\",\n \"legalConsentTextSize\",\n \"submitAlignment\",\n \"submitColor\",\n \"submitFontColor\",\n \"submitSize\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"labelTextSize\": {\n \"type\": \"string\"\n },\n \"legalConsentTextColor\": {\n \"type\": \"string\"\n },\n \"fontFamily\": {\n \"type\": \"string\"\n },\n \"legalConsentTextSize\": {\n \"type\": \"string\"\n },\n \"backgroundWidth\": {\n \"type\": \"string\"\n },\n \"helpTextSize\": {\n \"type\": \"string\"\n },\n \"submitFontColor\": {\n \"type\": \"string\"\n },\n \"labelTextColor\": {\n \"type\": \"string\"\n },\n \"submitAlignment\": {\n \"type\": \"string\",\n \"enum\": [\n \"left\",\n \"right\",\n \"center\"\n ]\n },\n \"submitSize\": {\n \"type\": \"string\"\n },\n \"helpTextColor\": {\n \"type\": \"string\"\n },\n \"submitColor\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Styling options for the form\"\n }\n },\n \"description\": \"Options for styling the form.\"\n },\n \"legalConsentOptions\": {\n \"oneOf\": [\n {\n \"title\": \"none\",\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"default\": \"none\",\n \"enum\": [\n \"none\"\n ]\n }\n }\n },\n {\n \"title\": \"legitimate_interest\",\n \"required\": [\n \"lawfulBasis\",\n \"privacyText\",\n \"subscriptionTypeIds\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"lawfulBasis\": {\n \"type\": \"string\",\n \"enum\": [\n \"lead\",\n \"client\",\n \"other\"\n ]\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"legitimate_interest\",\n \"enum\": [\n \"legitimate_interest\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"explicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"consentToProcessCheckboxLabel\": {\n \"type\": \"string\"\n },\n \"consentToProcessFooterText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"explicit_consent_to_process\",\n \"enum\": [\n \"explicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"implicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"implicit_consent_to_process\",\n \"enum\": [\n \"implicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n }\n },\n \"x-hubspot-sub-type-impl\": true\n }\n ]\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotMarketingForm.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotMarketingForm.json new file mode 100644 index 00000000..46bfe579 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateHubspotMarketingForm.json @@ -0,0 +1,972 @@ +{ + "name": "UpdateHubspotMarketingForm", + "fully_qualified_name": "HubspotMarketingApi.UpdateHubspotMarketingForm@0.1.0", + "description": "Update components of a HubSpot marketing form.\n\nUse this tool to modify specific components of an existing marketing form in HubSpot by providing the form ID. Ideal for updating form details without creating a new form.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "form_id", + "required": true, + "description": "The unique identifier for the form to update. Must be provided to specify which form's components to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the form to update." + }, + "inferrable": true, + "http_endpoint_parameter_name": "formId" + }, + { + "name": "form_update_details", + "required": true, + "description": "JSON object defining the components to update in the form, such as field groups, configuration settings, and display options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fieldGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "default_group", + "progressive", + "queued" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "richTextType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "text", + "image" + ], + "properties": null, + "inner_properties": null, + "description": "The type of rich text included. The default value is text." + }, + "richText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The form fields included in the group" + } + }, + "description": "The fields in the form, grouped in rows." + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether this form is archived." + }, + "configuration": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "createNewContactForNewEmail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "objectTypeId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The objectTypeId for both contact and company" + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + }, + "description": null + }, + "postSubmitAction": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "thank_you", + "redirect_url" + ], + "properties": null, + "inner_properties": null, + "description": "The action to take after submit. The default action is displaying a thank you message." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The thank you text or the page to redirect to." + } + }, + "inner_properties": null, + "description": "What should happen after the customer submits the form." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ], + "properties": null, + "inner_properties": null, + "description": "The language of the form." + }, + "prePopulateKnownValues": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The list of user IDs to receive a notification email when a submission is received." + } + }, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the form. Expected to be unique for a hub." + }, + "legalConsentOptions": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "displayOptions": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "renderRawHtml": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "theme": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ], + "properties": null, + "inner_properties": null, + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page." + }, + "submitButtonText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displayed on the form submit button." + }, + "style": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "labelTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "legalConsentTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontFamily": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "legalConsentTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "helpTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "labelTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitAlignment": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "left", + "right", + "center" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "submitSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "helpTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Styling options for the form" + } + }, + "inner_properties": null, + "description": "Options for styling the form." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/marketing/v3/forms/{formId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "forms" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/forms/{formId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "formId", + "tool_parameter_name": "form_id", + "description": "The ID of the form to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the form to update." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "form_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fieldGroups": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "default_group", + "progressive", + "queued" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "richTextType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "text", + "image" + ], + "properties": null, + "inner_properties": null, + "description": "The type of rich text included. The default value is text." + }, + "richText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields." + }, + "fields": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The form fields included in the group" + } + }, + "description": "The fields in the form, grouped in rows." + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether this form is archived." + }, + "configuration": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "createNewContactForNewEmail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to create a new contact when a form is submitted with an email address that doesn\u2019t match any in your existing contacts records." + }, + "editable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be edited." + }, + "allowLinkToResetKnownValues": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission." + }, + "lifecycleStages": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "objectTypeId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The objectTypeId for both contact and company" + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The internal name of the contact's lifecycle stage set when submitting a form" + } + }, + "description": null + }, + "postSubmitAction": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "thank_you", + "redirect_url" + ], + "properties": null, + "inner_properties": null, + "description": "The action to take after submit. The default action is displaying a thank you message." + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The thank you text or the page to redirect to." + } + }, + "inner_properties": null, + "description": "What should happen after the customer submits the form." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "ar-eg", + "bg", + "bn", + "ca-es", + "cs", + "da", + "de", + "el", + "en", + "es", + "es-mx", + "fi", + "fr", + "fr-ca", + "he-il", + "hr", + "hu", + "id", + "it", + "ja", + "ko", + "lt", + "ms", + "nl", + "no-no", + "pl", + "pt", + "pt-br", + "ro", + "ru", + "sk", + "sl", + "sv", + "th", + "tl", + "tr", + "uk", + "vi", + "zh-cn", + "zh-hk", + "zh-tw" + ], + "properties": null, + "inner_properties": null, + "description": "The language of the form." + }, + "prePopulateKnownValues": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether contact fields should pre-populate with known information when a contact returns to your site." + }, + "cloneable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be cloned." + }, + "notifyContactOwner": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to send a notification email to the contact owner when a submission is received." + }, + "recaptchaEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether CAPTCHA (spam prevention) is enabled." + }, + "archivable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form can be archived." + }, + "notifyRecipients": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The list of user IDs to receive a notification email when a submission is received." + } + }, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the form. Expected to be unique for a hub." + }, + "legalConsentOptions": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "displayOptions": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "renderRawHtml": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the form will render as raw HTML as opposed to inside an iFrame." + }, + "cssClass": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "theme": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "default_style", + "canvas", + "linear", + "round", + "sharp", + "legacy" + ], + "properties": null, + "inner_properties": null, + "description": "The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page." + }, + "submitButtonText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The text displayed on the form submit button." + }, + "style": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "labelTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "legalConsentTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontFamily": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "legalConsentTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "helpTextSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "labelTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitAlignment": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "left", + "right", + "center" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "submitSize": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "helpTextColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "submitColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Styling options for the form" + } + }, + "inner_properties": null, + "description": "Options for styling the form." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"fieldGroups\": {\n \"type\": \"array\",\n \"description\": \"The fields in the form, grouped in rows.\",\n \"items\": {\n \"required\": [\n \"fields\",\n \"groupType\",\n \"richTextType\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"groupType\": {\n \"type\": \"string\",\n \"enum\": [\n \"default_group\",\n \"progressive\",\n \"queued\"\n ]\n },\n \"richTextType\": {\n \"type\": \"string\",\n \"description\": \"The type of rich text included. The default value is text.\",\n \"enum\": [\n \"text\",\n \"image\"\n ]\n },\n \"richText\": {\n \"type\": \"string\",\n \"description\": \"A block of rich text or an image. Those can be used to add extra information for the customers filling in the form. If the field group includes fields, the rich text will be displayed before the fields.\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"The form fields included in the group\",\n \"items\": {\n \"oneOf\": [\n {\n \"title\": \"email\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"required\": [\n \"dependentCondition\",\n \"dependentField\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"dependentCondition\": {\n \"required\": [\n \"operator\",\n \"rangeEnd\",\n \"rangeStart\",\n \"value\",\n \"values\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"rangeStart\": {\n \"type\": \"string\"\n },\n \"values\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"value\": {\n \"type\": \"string\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"contains\",\n \"doesnt_contain\",\n \"str_starts_with\",\n \"str_ends_with\",\n \"lt\",\n \"lte\",\n \"gt\",\n \"gte\",\n \"between\",\n \"not_between\",\n \"within_time_reverse\",\n \"within_time\",\n \"set_any\",\n \"set_not_any\",\n \"set_all\",\n \"set_not_all\",\n \"set_eq\",\n \"set_neq\",\n \"is_not_empty\"\n ]\n },\n \"rangeEnd\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"A condition based on customer input\"\n },\n \"dependentField\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/EmailField\",\n \"has_circular_reference\": true\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n },\n \"description\": \"A form field that will be displayed based on what the customer entered in another field.\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"email\",\n \"enum\": [\n \"email\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"blockedEmailDomains\",\n \"useDefaultBlockList\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"useDefaultBlockList\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to block the free email providers.\"\n },\n \"blockedEmailDomains\": {\n \"type\": \"array\",\n \"description\": \"A list of email domains to block.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Describes how an email address should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting an email address.\"\n },\n {\n \"title\": \"phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"useCountryCodeSelect\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"useCountryCodeSelect\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to display a country code drop down next to the phone field.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"phone\",\n \"enum\": [\n \"phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a phone number.\"\n },\n {\n \"title\": \"mobile_phone\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\",\n \"validation\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"mobile_phone\",\n \"enum\": [\n \"mobile_phone\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a phone number should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a mobile phone number.\"\n },\n {\n \"title\": \"single_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_line_text\",\n \"enum\": [\n \"single_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single-line text box.\"\n },\n {\n \"title\": \"multi_line_text\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multi_line_text\",\n \"enum\": [\n \"multi_line_text\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a multiple-line text box.\"\n },\n {\n \"title\": \"number\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"number\",\n \"enum\": [\n \"number\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n },\n \"validation\": {\n \"required\": [\n \"maxAllowedDigits\",\n \"minAllowedDigits\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"minAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"maxAllowedDigits\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n }\n },\n \"description\": \"Describes how a numeric value should be validated.\"\n }\n },\n \"description\": \"A form field used for collecting a numeric value.\"\n },\n {\n \"title\": \"single_checkbox\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"single_checkbox\",\n \"enum\": [\n \"single_checkbox\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a single checkbox.\"\n },\n {\n \"title\": \"multiple_checkboxes\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"multiple_checkboxes\",\n \"enum\": [\n \"multiple_checkboxes\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of checkboxes allowing multiple choices to be selected at one time.\"\n },\n {\n \"title\": \"dropdown\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"dropdown\",\n \"enum\": [\n \"dropdown\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A field consisting of a drop down with multiple choices.\"\n },\n {\n \"title\": \"radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"options\": {\n \"type\": \"array\",\n \"description\": \"The list of available choices for this field.\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"description\": \"The values selected by default. Those values will be submitted unless the customer modifies them.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"radio\",\n \"enum\": [\n \"radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field consisting of a set of radio options, out of which one can be selected at a time.\"\n },\n {\n \"title\": \"datepicker\",\n \"required\": [\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"datepicker\",\n \"enum\": [\n \"datepicker\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used to select a date\"\n },\n {\n \"title\": \"file\",\n \"required\": [\n \"allowMultipleFiles\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID for this field's CRM object type. For example a CONTACT field will have the object type ID 0-1.\"\n },\n \"allowMultipleFiles\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to allow the upload of multiple files.\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a field should be hidden or not. Hidden fields won't appear on the form, but can be used to pass a value to a property without requiring the customer to fill it in.\"\n },\n \"defaultValue\": {\n \"type\": \"string\",\n \"description\": \"The value filled in by default. This value will be submitted unless the customer modifies it.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the field. In combination with the object type ID, it must be unique.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Additional text helping the customer to complete the field.\"\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"description\": \"A list of other fields to make visible based on the value filled in for this field.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"description\": \"The prompt text showing when the field isn't filled in.\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"description\": \"Determines how the field will be displayed and validated.\",\n \"default\": \"file\",\n \"enum\": [\n \"file\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether a value for this field is required when submitting the form.\"\n }\n },\n \"description\": \"A form field used for uploading one or more files.\"\n },\n {\n \"title\": \"payment_link_radio\",\n \"required\": [\n \"defaultValues\",\n \"dependentFields\",\n \"fieldType\",\n \"hidden\",\n \"label\",\n \"name\",\n \"objectTypeId\",\n \"options\",\n \"required\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\"\n },\n \"hidden\": {\n \"type\": \"boolean\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"options\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"displayOrder\",\n \"label\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"displayOrder\": {\n \"type\": \"integer\",\n \"description\": \"The order the choices will be displayed in.\",\n \"format\": \"int32\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The visible label for this choice.\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value which will be submitted if this choice is selected.\"\n }\n }\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"defaultValues\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dependentFields\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DependentField\",\n \"has_circular_reference\": true\n }\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"fieldType\": {\n \"type\": \"string\",\n \"default\": \"payment_link_radio\",\n \"enum\": [\n \"payment_link_radio\"\n ]\n },\n \"required\": {\n \"type\": \"boolean\"\n }\n }\n }\n ]\n }\n }\n },\n \"description\": \"A collection of up to three form fields usually displayed in a row.\"\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this form is archived.\"\n },\n \"configuration\": {\n \"required\": [\n \"allowLinkToResetKnownValues\",\n \"archivable\",\n \"cloneable\",\n \"createNewContactForNewEmail\",\n \"editable\",\n \"language\",\n \"notifyContactOwner\",\n \"notifyRecipients\",\n \"postSubmitAction\",\n \"prePopulateKnownValues\",\n \"recaptchaEnabled\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"createNewContactForNewEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to create a new contact when a form is submitted with an email address that doesn\\u2019t match any in your existing contacts records.\"\n },\n \"editable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be edited.\"\n },\n \"allowLinkToResetKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to add a reset link to the form. This removes any pre-populated content on the form and creates a new contact on submission.\"\n },\n \"lifecycleStages\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"objectTypeId\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"objectTypeId\": {\n \"type\": \"string\",\n \"description\": \"The objectTypeId for both contact and company\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The internal name of the contact's lifecycle stage set when submitting a form\"\n }\n }\n }\n },\n \"postSubmitAction\": {\n \"required\": [\n \"type\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The action to take after submit. The default action is displaying a thank you message.\",\n \"enum\": [\n \"thank_you\",\n \"redirect_url\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The thank you text or the page to redirect to.\"\n }\n },\n \"description\": \"What should happen after the customer submits the form.\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"The language of the form.\",\n \"enum\": [\n \"af\",\n \"ar-eg\",\n \"bg\",\n \"bn\",\n \"ca-es\",\n \"cs\",\n \"da\",\n \"de\",\n \"el\",\n \"en\",\n \"es\",\n \"es-mx\",\n \"fi\",\n \"fr\",\n \"fr-ca\",\n \"he-il\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"ms\",\n \"nl\",\n \"no-no\",\n \"pl\",\n \"pt\",\n \"pt-br\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sv\",\n \"th\",\n \"tl\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-cn\",\n \"zh-hk\",\n \"zh-tw\"\n ]\n },\n \"prePopulateKnownValues\": {\n \"type\": \"boolean\",\n \"description\": \"Whether contact fields should pre-populate with known information when a contact returns to your site.\"\n },\n \"cloneable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be cloned.\"\n },\n \"notifyContactOwner\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to send a notification email to the contact owner when a submission is received.\"\n },\n \"recaptchaEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether CAPTCHA (spam prevention) is enabled.\"\n },\n \"archivable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form can be archived.\"\n },\n \"notifyRecipients\": {\n \"type\": \"array\",\n \"description\": \"The list of user IDs to receive a notification email when a submission is received.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the form. Expected to be unique for a hub.\"\n },\n \"legalConsentOptions\": {\n \"oneOf\": [\n {\n \"title\": \"none\",\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"default\": \"none\",\n \"enum\": [\n \"none\"\n ]\n }\n }\n },\n {\n \"title\": \"legitimate_interest\",\n \"required\": [\n \"lawfulBasis\",\n \"privacyText\",\n \"subscriptionTypeIds\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"lawfulBasis\": {\n \"type\": \"string\",\n \"enum\": [\n \"lead\",\n \"client\",\n \"other\"\n ]\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"legitimate_interest\",\n \"enum\": [\n \"legitimate_interest\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"explicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"consentToProcessCheckboxLabel\": {\n \"type\": \"string\"\n },\n \"consentToProcessFooterText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"explicit_consent_to_process\",\n \"enum\": [\n \"explicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"title\": \"implicit_consent_to_process\",\n \"required\": [\n \"communicationsCheckboxes\",\n \"privacyText\",\n \"type\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"communicationsCheckboxes\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"label\",\n \"required\",\n \"subscriptionTypeId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"subscriptionTypeId\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The main label for the form field.\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"description\": \"Whether this checkbox is required when submitting the form.\"\n }\n }\n }\n },\n \"communicationConsentText\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"default\": \"implicit_consent_to_process\",\n \"enum\": [\n \"implicit_consent_to_process\"\n ]\n },\n \"privacyText\": {\n \"type\": \"string\"\n },\n \"consentToProcessText\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n },\n \"displayOptions\": {\n \"required\": [\n \"renderRawHtml\",\n \"style\",\n \"submitButtonText\",\n \"theme\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"renderRawHtml\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the form will render as raw HTML as opposed to inside an iFrame.\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"description\": \"The theme used for styling the input fields. This will not apply if the form is added to a HubSpot CMS page.\",\n \"enum\": [\n \"default_style\",\n \"canvas\",\n \"linear\",\n \"round\",\n \"sharp\",\n \"legacy\"\n ]\n },\n \"submitButtonText\": {\n \"type\": \"string\",\n \"description\": \"The text displayed on the form submit button.\"\n },\n \"style\": {\n \"required\": [\n \"backgroundWidth\",\n \"fontFamily\",\n \"helpTextColor\",\n \"helpTextSize\",\n \"labelTextColor\",\n \"labelTextSize\",\n \"legalConsentTextColor\",\n \"legalConsentTextSize\",\n \"submitAlignment\",\n \"submitColor\",\n \"submitFontColor\",\n \"submitSize\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"labelTextSize\": {\n \"type\": \"string\"\n },\n \"legalConsentTextColor\": {\n \"type\": \"string\"\n },\n \"fontFamily\": {\n \"type\": \"string\"\n },\n \"legalConsentTextSize\": {\n \"type\": \"string\"\n },\n \"backgroundWidth\": {\n \"type\": \"string\"\n },\n \"helpTextSize\": {\n \"type\": \"string\"\n },\n \"submitFontColor\": {\n \"type\": \"string\"\n },\n \"labelTextColor\": {\n \"type\": \"string\"\n },\n \"submitAlignment\": {\n \"type\": \"string\",\n \"enum\": [\n \"left\",\n \"right\",\n \"center\"\n ]\n },\n \"submitSize\": {\n \"type\": \"string\"\n },\n \"helpTextColor\": {\n \"type\": \"string\"\n },\n \"submitColor\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Styling options for the form\"\n }\n },\n \"description\": \"Options for styling the form.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEmailProperties.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEmailProperties.json new file mode 100644 index 00000000..15d6b138 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEmailProperties.json @@ -0,0 +1,4170 @@ +{ + "name": "UpdateMarketingEmailProperties", + "fully_qualified_name": "HubspotMarketingApi.UpdateMarketingEmailProperties@0.1.0", + "description": "Change properties of a marketing email.\n\nUse this tool to update properties of an existing marketing email by specifying the email ID. It helps in modifying content or settings of your marketing campaigns.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "email_identifier", + "required": true, + "description": "The unique identifier of the marketing email to be updated. Required to specify which email's properties are being changed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "emailId" + }, + { + "name": "email_properties", + "required": true, + "description": "JSON object containing fields to update in the marketing email, like subject, content, A/B testing info, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "A marketing email object with properties that should overwrite the corresponding properties of the marketing email." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/marketing/v3/emails/{emailId}'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "content" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/emails/{emailId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "emailId", + "tool_parameter_name": "email_identifier", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "email_properties", + "description": "A marketing email object with properties that should overwrite the corresponding properties of the marketing email.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "rssData": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "blogImageMaxWidth": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogEmailType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "hubspotBlogId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "rssEntryTemplate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "timing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "maxEntries": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "useHeadlineAsSubject": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "blogLayout": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "RSS related data if it is a blog or rss email." + }, + "subject": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The subject of the email." + }, + "testing": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "isAbVariation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "abSamplingDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if the results are inconclusive after the test period, master or variant." + }, + "abSampleSizeDefault": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Version of the email that should be sent if there are too few recipients to conduct an AB test." + }, + "abStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "master", + "variant", + "loser_variant", + "mab_master", + "mab_variant", + "automated_master", + "automated_variant", + "automated_loser_variant" + ], + "properties": null, + "inner_properties": null, + "description": "Status of the AB test." + }, + "abTestPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The size of your test group." + }, + "hoursToWait": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts." + }, + "testId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the AB test." + }, + "abSuccessMetric": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "CLICKS_BY_OPENS", + "CLICKS_BY_DELIVERED", + "OPENS_BY_DELIVERED" + ], + "properties": null, + "inner_properties": null, + "description": "Metric to determine the version that will be sent to the remaining contacts." + } + }, + "inner_properties": null, + "description": "AB testing related data. This property is only returned for AB type emails." + }, + "publishDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails." + }, + "language": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "af", + "af-na", + "af-za", + "agq", + "agq-cm", + "ak", + "ak-gh", + "am", + "am-et", + "ann", + "ann-ng", + "ar", + "ar-001", + "ar-ae", + "ar-bh", + "ar-dj", + "ar-dz", + "ar-eg", + "ar-eh", + "ar-er", + "ar-il", + "ar-iq", + "ar-jo", + "ar-km", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-mr", + "ar-om", + "ar-ps", + "ar-qa", + "ar-sa", + "ar-sd", + "ar-so", + "ar-ss", + "ar-sy", + "ar-td", + "ar-tn", + "ar-ye", + "as", + "asa", + "asa-tz", + "ast", + "ast-es", + "as-in", + "az", + "az-az", + "bas", + "bas-cm", + "be", + "bem", + "bem-zm", + "bez", + "bez-tz", + "be-by", + "bg", + "bgc", + "bgc-in", + "bg-bg", + "bho", + "bho-in", + "bm", + "bm-ml", + "bn", + "bn-bd", + "bn-in", + "bo", + "bo-cn", + "bo-in", + "br", + "brx", + "brx-in", + "br-fr", + "bs", + "bs-ba", + "ca", + "ca-ad", + "ca-es", + "ca-fr", + "ca-it", + "ccp", + "ccp-bd", + "ccp-in", + "ce", + "ceb", + "ceb-ph", + "ce-ru", + "cgg", + "cgg-ug", + "chr", + "chr-us", + "ckb", + "ckb-iq", + "ckb-ir", + "cs", + "cs-cz", + "cu", + "cu-ru", + "cv", + "cv-ru", + "cy", + "cy-gb", + "da", + "dav", + "dav-ke", + "da-dk", + "da-gl", + "de", + "de-at", + "de-be", + "de-ch", + "de-de", + "de-gr", + "de-it", + "de-li", + "de-lu", + "dje", + "dje-ne", + "doi", + "doi-in", + "dsb", + "dsb-de", + "dua", + "dua-cm", + "dyo", + "dyo-sn", + "dz", + "dz-bt", + "ebu", + "ebu-ke", + "ee", + "ee-gh", + "ee-tg", + "el", + "el-cy", + "el-gr", + "en", + "en-001", + "en-150", + "en-ae", + "en-ag", + "en-ai", + "en-as", + "en-at", + "en-au", + "en-bb", + "en-be", + "en-bi", + "en-bm", + "en-bs", + "en-bw", + "en-bz", + "en-ca", + "en-cc", + "en-ch", + "en-ck", + "en-cm", + "en-cn", + "en-cx", + "en-cy", + "en-de", + "en-dg", + "en-dk", + "en-dm", + "en-ee", + "en-eg", + "en-er", + "en-es", + "en-fi", + "en-fj", + "en-fk", + "en-fm", + "en-fr", + "en-gb", + "en-gd", + "en-gg", + "en-gh", + "en-gi", + "en-gm", + "en-gu", + "en-gy", + "en-hk", + "en-ie", + "en-il", + "en-im", + "en-in", + "en-io", + "en-je", + "en-jm", + "en-ke", + "en-ki", + "en-kn", + "en-ky", + "en-lc", + "en-lr", + "en-ls", + "en-lu", + "en-mg", + "en-mh", + "en-mo", + "en-mp", + "en-ms", + "en-mt", + "en-mu", + "en-mv", + "en-mw", + "en-mx", + "en-my", + "en-na", + "en-nf", + "en-ng", + "en-nl", + "en-nr", + "en-nu", + "en-nz", + "en-pg", + "en-ph", + "en-pk", + "en-pn", + "en-pr", + "en-pw", + "en-rw", + "en-sb", + "en-sc", + "en-sd", + "en-se", + "en-sg", + "en-sh", + "en-si", + "en-sl", + "en-ss", + "en-sx", + "en-sz", + "en-tc", + "en-tk", + "en-tn", + "en-to", + "en-tt", + "en-tv", + "en-tz", + "en-ug", + "en-um", + "en-us", + "en-vc", + "en-vg", + "en-vi", + "en-vu", + "en-ws", + "en-za", + "en-zm", + "en-zw", + "eo", + "eo-001", + "es", + "es-419", + "es-ar", + "es-bo", + "es-br", + "es-bz", + "es-cl", + "es-co", + "es-cr", + "es-cu", + "es-do", + "es-ea", + "es-ec", + "es-es", + "es-gq", + "es-gt", + "es-hn", + "es-ic", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-ph", + "es-pr", + "es-py", + "es-sv", + "es-us", + "es-uy", + "es-ve", + "et", + "et-ee", + "eu", + "eu-es", + "ewo", + "ewo-cm", + "fa", + "fa-af", + "fa-ir", + "ff", + "ff-bf", + "ff-cm", + "ff-gh", + "ff-gm", + "ff-gn", + "ff-gw", + "ff-lr", + "ff-mr", + "ff-ne", + "ff-ng", + "ff-sl", + "ff-sn", + "fi", + "fil", + "fil-ph", + "fi-fi", + "fo", + "fo-dk", + "fo-fo", + "fr", + "frr", + "frr-de", + "fr-be", + "fr-bf", + "fr-bi", + "fr-bj", + "fr-bl", + "fr-ca", + "fr-cd", + "fr-cf", + "fr-cg", + "fr-ch", + "fr-ci", + "fr-cm", + "fr-dj", + "fr-dz", + "fr-fr", + "fr-ga", + "fr-gf", + "fr-gn", + "fr-gp", + "fr-gq", + "fr-ht", + "fr-km", + "fr-lu", + "fr-ma", + "fr-mc", + "fr-mf", + "fr-mg", + "fr-ml", + "fr-mq", + "fr-mr", + "fr-mu", + "fr-nc", + "fr-ne", + "fr-pf", + "fr-pm", + "fr-re", + "fr-rw", + "fr-sc", + "fr-sn", + "fr-sy", + "fr-td", + "fr-tg", + "fr-tn", + "fr-vu", + "fr-wf", + "fr-yt", + "fur", + "fur-it", + "fy", + "fy-nl", + "ga", + "ga-gb", + "ga-ie", + "gd", + "gd-gb", + "gl", + "gl-es", + "gsw", + "gsw-ch", + "gsw-fr", + "gsw-li", + "gu", + "guz", + "guz-ke", + "gu-in", + "gv", + "gv-im", + "ha", + "haw", + "haw-us", + "ha-gh", + "ha-ne", + "ha-ng", + "he", + "he-il", + "hi", + "hi-in", + "hr", + "hr-ba", + "hr-hr", + "hsb", + "hsb-de", + "hu", + "hu-hu", + "hy", + "hy-am", + "ia", + "ia-001", + "id", + "ig", + "ig-ng", + "ii", + "ii-cn", + "id-id", + "is", + "is-is", + "it", + "it-ch", + "it-it", + "it-sm", + "it-va", + "ja", + "ja-jp", + "jgo", + "jgo-cm", + "yi", + "yi-001", + "jmc", + "jmc-tz", + "jv", + "jv-id", + "ka", + "kab", + "kab-dz", + "kam", + "kam-ke", + "ka-ge", + "kde", + "kde-tz", + "kea", + "kea-cv", + "kgp", + "kgp-br", + "khq", + "khq-ml", + "ki", + "ki-ke", + "kk", + "kkj", + "kkj-cm", + "kk-kz", + "kl", + "kln", + "kln-ke", + "kl-gl", + "km", + "km-kh", + "kn", + "kn-in", + "ko", + "kok", + "kok-in", + "ko-kp", + "ko-kr", + "ks", + "ksb", + "ksb-tz", + "ksf", + "ksf-cm", + "ksh", + "ksh-de", + "ks-in", + "ku", + "ku-tr", + "kw", + "kw-gb", + "ky", + "ky-kg", + "lag", + "lag-tz", + "lb", + "lb-lu", + "lg", + "lg-ug", + "lkt", + "lkt-us", + "ln", + "ln-ao", + "ln-cd", + "ln-cf", + "ln-cg", + "lo", + "lo-la", + "lrc", + "lrc-iq", + "lrc-ir", + "lt", + "lt-lt", + "lu", + "luo", + "luo-ke", + "luy", + "luy-ke", + "lu-cd", + "lv", + "lv-lv", + "mai", + "mai-in", + "mas", + "mas-ke", + "mas-tz", + "mdf", + "mdf-ru", + "mer", + "mer-ke", + "mfe", + "mfe-mu", + "mg", + "mgh", + "mgh-mz", + "mgo", + "mgo-cm", + "mg-mg", + "mi", + "mi-nz", + "mk", + "mk-mk", + "ml", + "ml-in", + "mn", + "mni", + "mni-in", + "mn-mn", + "mr", + "mr-in", + "ms", + "ms-bn", + "ms-id", + "ms-my", + "ms-sg", + "mt", + "mt-mt", + "mua", + "mua-cm", + "my", + "my-mm", + "mzn", + "mzn-ir", + "naq", + "naq-na", + "nb", + "nb-no", + "nb-sj", + "nd", + "nds", + "nds-de", + "nds-nl", + "nd-zw", + "ne", + "ne-in", + "ne-np", + "nl", + "nl-aw", + "nl-be", + "nl-bq", + "nl-ch", + "nl-cw", + "nl-lu", + "nl-nl", + "nl-sr", + "nl-sx", + "nmg", + "nmg-cm", + "nn", + "nnh", + "nnh-cm", + "nn-no", + "no", + "no-no", + "nus", + "nus-ss", + "nyn", + "nyn-ug", + "oc", + "oc-es", + "oc-fr", + "om", + "om-et", + "om-ke", + "or", + "or-in", + "os", + "os-ge", + "os-ru", + "pa", + "pa-in", + "pa-pk", + "pcm", + "pcm-ng", + "pis", + "pis-sb", + "pl", + "pl-pl", + "prg", + "prg-001", + "ps", + "ps-af", + "ps-pk", + "pt", + "pt-ao", + "pt-br", + "pt-ch", + "pt-cv", + "pt-gq", + "pt-gw", + "pt-lu", + "pt-mo", + "pt-mz", + "pt-pt", + "pt-st", + "pt-tl", + "qu", + "qu-bo", + "qu-ec", + "qu-pe", + "raj", + "raj-in", + "rm", + "rm-ch", + "rn", + "rn-bi", + "ro", + "rof", + "rof-tz", + "ro-md", + "ro-ro", + "ru", + "ru-by", + "ru-kg", + "ru-kz", + "ru-md", + "ru-ru", + "ru-ua", + "rw", + "rwk", + "rwk-tz", + "rw-rw", + "sa", + "sah", + "sah-ru", + "saq", + "saq-ke", + "sat", + "sat-in", + "sa-in", + "sbp", + "sbp-tz", + "sc", + "sc-it", + "sd", + "sd-in", + "sd-pk", + "se", + "seh", + "seh-mz", + "ses", + "ses-ml", + "se-fi", + "se-no", + "se-se", + "sg", + "sg-cf", + "shi", + "shi-ma", + "si", + "si-lk", + "sk", + "sk-sk", + "sl", + "sl-si", + "smn", + "smn-fi", + "sms", + "sms-fi", + "sn", + "sn-zw", + "so", + "so-dj", + "so-et", + "so-ke", + "so-so", + "sq", + "sq-al", + "sq-mk", + "sq-xk", + "sr", + "sr-ba", + "sr-cs", + "sr-me", + "sr-rs", + "sr-xk", + "su", + "su-id", + "sv", + "sv-ax", + "sv-fi", + "sv-se", + "sw", + "sw-cd", + "sw-ke", + "sw-tz", + "sw-ug", + "sy", + "ta", + "ta-in", + "ta-lk", + "ta-my", + "ta-sg", + "te", + "teo", + "teo-ke", + "teo-ug", + "te-in", + "tg", + "tg-tj", + "th", + "th-th", + "ti", + "ti-er", + "ti-et", + "tk", + "tk-tm", + "tl", + "to", + "tok", + "tok-001", + "to-to", + "tr", + "tr-cy", + "tr-tr", + "tt", + "tt-ru", + "twq", + "twq-ne", + "tzm", + "tzm-ma", + "ug", + "ug-cn", + "uk", + "uk-ua", + "ur", + "ur-in", + "ur-pk", + "uz", + "uz-af", + "uz-uz", + "vai", + "vai-lr", + "vi", + "vi-vn", + "vo", + "vo-001", + "vun", + "vun-tz", + "wae", + "wae-ch", + "wo", + "wo-sn", + "xh", + "xh-za", + "xog", + "xog-ug", + "yav", + "yav-cm", + "yo", + "yo-bj", + "yo-ng", + "yrl", + "yrl-br", + "yrl-co", + "yrl-ve", + "yue", + "yue-cn", + "yue-hk", + "zgh", + "zgh-ma", + "zh", + "zh-cn", + "zh-hans", + "zh-hant", + "zh-hk", + "zh-mo", + "zh-sg", + "zh-tw", + "zu", + "zu-za" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "businessUnitId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "content": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "smartFields": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "themeSettingsValues": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "flexAreas": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgets": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "plainTextVersion": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "templatePath": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "widgetContainers": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "styleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImage": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "backgroundImageType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderWidth": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bodyBorderColorChoice": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "primaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFont": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryAccentColor": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontSize": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "secondaryFontLineHeight": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "headingOneFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "headingTwoFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "linksFont": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite1": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite2": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite3": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite4": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite5": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "colorPickerFavorite6": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyPadding": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "emailBodyWidth": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "buttonStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backgroundColor": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "cornerRadius": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "fontStyle": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "font": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "size": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "underline": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "bold": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "italic": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "dividerStyleSettings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "height": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "color": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "lineType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Data structure representing the content of the email." + }, + "webversion": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "domain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToPageId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "isPageRedirected": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "redirectToUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "title": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "metaDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "pageExpiryEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "slug": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "url": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "expiresAt": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + }, + "archived": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines if the email is archived or not." + }, + "subscriptionDetails": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "officeLocationId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the selected office location." + }, + "subscriptionName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "preferencesGroupId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "subscriptionId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID of the subscription." + } + }, + "inner_properties": null, + "description": "Data structure representing the subscription fields of the email." + }, + "activeDomain": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The active domain of the email." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the email, as displayed on the email dashboard." + }, + "campaign": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the campaign this email is associated to." + }, + "from": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "customReplyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The reply to recipients will see." + }, + "fromName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name recipients will see." + }, + "replyTo": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The from address and reply to email address (if no customReplyTo defined) recipients will see." + } + }, + "inner_properties": null, + "description": "Data structure representing the from fields on the email." + }, + "jitterSendTime": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "state": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "AUTOMATED", + "AUTOMATED_DRAFT", + "AUTOMATED_SENDING", + "AUTOMATED_FOR_FORM", + "AUTOMATED_FOR_FORM_BUFFER", + "AUTOMATED_FOR_FORM_DRAFT", + "AUTOMATED_FOR_FORM_LEGACY", + "BLOG_EMAIL_DRAFT", + "BLOG_EMAIL_PUBLISHED", + "DRAFT", + "DRAFT_AB", + "DRAFT_AB_VARIANT", + "ERROR", + "LOSER_AB_VARIANT", + "PAGE_STUB", + "PRE_PROCESSING", + "PROCESSING", + "PUBLISHED", + "PUBLISHED_AB", + "PUBLISHED_AB_VARIANT", + "PUBLISHED_OR_SCHEDULED", + "RSS_TO_EMAIL_DRAFT", + "RSS_TO_EMAIL_PUBLISHED", + "SCHEDULED", + "SCHEDULED_AB", + "SCHEDULED_OR_PUBLISHED", + "AUTOMATED_AB", + "AUTOMATED_AB_VARIANT", + "AUTOMATED_DRAFT_AB", + "AUTOMATED_DRAFT_ABVARIANT", + "AUTOMATED_LOSER_ABVARIANT", + "AGENT_GENERATED" + ], + "properties": null, + "inner_properties": null, + "description": "The email state." + }, + "to": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "contactIlsLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "limitSendFrequency": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "suppressGraymail": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "contactIds": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + }, + "contactLists": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Included IDs." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Excluded IDs." + } + }, + "inner_properties": null, + "description": "Data structure representing lists of IDs that should be included and excluded." + } + }, + "inner_properties": null, + "description": "Data structure representing the to fields of the email." + }, + "subcategory": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ab_master", + "ab_variant", + "ab_loser_variant", + "page_stub", + "landing_page", + "site_page", + "legacy_page", + "ab_master_site_page", + "ab_variant_site_page", + "ab_loser_variant_site_page", + "performable_landing_page", + "performable_landing_page_cutover", + "staged_page", + "automated", + "automated_for_deal", + "automated_for_form", + "automated_for_form_legacy", + "automated_for_form_buffer", + "automated_for_form_draft", + "rss_to_email", + "rss_to_email_child", + "blog_email", + "blog_email_child", + "optin_email", + "optin_followup_email", + "batch", + "resubscribe_email", + "unsubscribe_confirmation_email", + "resubscribe_confirmation_email", + "single_send_api", + "marketing_single_send_api", + "smtp_token", + "localtime", + "automated_for_ticket", + "automated_for_leadflow", + "automated_for_feedback_ces", + "automated_for_feedback_nps", + "automated_for_feedback_custom", + "membership_registration", + "membership_password_saved", + "membership_password_reset", + "membership_otp_login", + "membership_passwordless_auth", + "membership_email_verification", + "membership_registration_follow_up", + "membership_verification", + "membership_follow_up", + "ticket_closed_kickback_email", + "ticket_opened_kickback_email", + "automated_for_custom_survey", + "discardable_stub", + "normal_blog_post", + "legacy_blog_post", + "imported_blog_post", + "automated_ab_master", + "automated_ab_variant", + "web_interactive", + "portal_content", + "page_instance_layout", + "kb_article_instance_layout", + "kb_listing", + "kb_search_results", + "kb_support_form", + "kb_404_page", + "case_study", + "case_study_listing", + "case_study_instance_layout", + "scp_static_page", + "scp_instance_layout_page", + "podcast_instance_layout", + "podcast_listing", + "blog_article_instance_layout", + "blog_article_listing", + "blog_author_detail", + "UNKNOWN" + ], + "properties": null, + "inner_properties": null, + "description": "The email subcategory." + }, + "sendOnPublish": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines whether the email will be sent immediately on publish." + } + }, + "inner_properties": null, + "description": "A marketing email object with properties that should overwrite the corresponding properties of the marketing email." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"description\": \"A marketing email object with properties that should overwrite the corresponding properties of the marketing email.\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"rssData\": {\n \"type\": \"object\",\n \"properties\": {\n \"blogImageMaxWidth\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"blogEmailType\": {\n \"type\": \"string\"\n },\n \"hubspotBlogId\": {\n \"type\": \"string\"\n },\n \"rssEntryTemplate\": {\n \"type\": \"string\"\n },\n \"timing\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"maxEntries\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"useHeadlineAsSubject\": {\n \"type\": \"boolean\"\n },\n \"blogLayout\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"RSS related data if it is a blog or rss email.\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"description\": \"The subject of the email.\"\n },\n \"testing\": {\n \"type\": \"object\",\n \"properties\": {\n \"isAbVariation\": {\n \"type\": \"boolean\"\n },\n \"abSamplingDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if the results are inconclusive after the test period, master or variant.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abSampleSizeDefault\": {\n \"type\": \"string\",\n \"description\": \"Version of the email that should be sent if there are too few recipients to conduct an AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abStatus\": {\n \"type\": \"string\",\n \"description\": \"Status of the AB test.\",\n \"enum\": [\n \"master\",\n \"variant\",\n \"loser_variant\",\n \"mab_master\",\n \"mab_variant\",\n \"automated_master\",\n \"automated_variant\",\n \"automated_loser_variant\"\n ]\n },\n \"abTestPercentage\": {\n \"type\": \"integer\",\n \"description\": \"The size of your test group.\",\n \"format\": \"int32\"\n },\n \"hoursToWait\": {\n \"type\": \"integer\",\n \"description\": \"Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.\",\n \"format\": \"int32\"\n },\n \"testId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the AB test.\"\n },\n \"abSuccessMetric\": {\n \"type\": \"string\",\n \"description\": \"Metric to determine the version that will be sent to the remaining contacts.\",\n \"enum\": [\n \"CLICKS_BY_OPENS\",\n \"CLICKS_BY_DELIVERED\",\n \"OPENS_BY_DELIVERED\"\n ]\n }\n },\n \"description\": \"AB testing related data. This property is only returned for AB type emails.\"\n },\n \"publishDate\": {\n \"type\": \"string\",\n \"description\": \"The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails.\",\n \"format\": \"date-time\"\n },\n \"language\": {\n \"type\": \"string\",\n \"enum\": [\n \"af\",\n \"af-na\",\n \"af-za\",\n \"agq\",\n \"agq-cm\",\n \"ak\",\n \"ak-gh\",\n \"am\",\n \"am-et\",\n \"ann\",\n \"ann-ng\",\n \"ar\",\n \"ar-001\",\n \"ar-ae\",\n \"ar-bh\",\n \"ar-dj\",\n \"ar-dz\",\n \"ar-eg\",\n \"ar-eh\",\n \"ar-er\",\n \"ar-il\",\n \"ar-iq\",\n \"ar-jo\",\n \"ar-km\",\n \"ar-kw\",\n \"ar-lb\",\n \"ar-ly\",\n \"ar-ma\",\n \"ar-mr\",\n \"ar-om\",\n \"ar-ps\",\n \"ar-qa\",\n \"ar-sa\",\n \"ar-sd\",\n \"ar-so\",\n \"ar-ss\",\n \"ar-sy\",\n \"ar-td\",\n \"ar-tn\",\n \"ar-ye\",\n \"as\",\n \"asa\",\n \"asa-tz\",\n \"ast\",\n \"ast-es\",\n \"as-in\",\n \"az\",\n \"az-az\",\n \"bas\",\n \"bas-cm\",\n \"be\",\n \"bem\",\n \"bem-zm\",\n \"bez\",\n \"bez-tz\",\n \"be-by\",\n \"bg\",\n \"bgc\",\n \"bgc-in\",\n \"bg-bg\",\n \"bho\",\n \"bho-in\",\n \"bm\",\n \"bm-ml\",\n \"bn\",\n \"bn-bd\",\n \"bn-in\",\n \"bo\",\n \"bo-cn\",\n \"bo-in\",\n \"br\",\n \"brx\",\n \"brx-in\",\n \"br-fr\",\n \"bs\",\n \"bs-ba\",\n \"ca\",\n \"ca-ad\",\n \"ca-es\",\n \"ca-fr\",\n \"ca-it\",\n \"ccp\",\n \"ccp-bd\",\n \"ccp-in\",\n \"ce\",\n \"ceb\",\n \"ceb-ph\",\n \"ce-ru\",\n \"cgg\",\n \"cgg-ug\",\n \"chr\",\n \"chr-us\",\n \"ckb\",\n \"ckb-iq\",\n \"ckb-ir\",\n \"cs\",\n \"cs-cz\",\n \"cu\",\n \"cu-ru\",\n \"cv\",\n \"cv-ru\",\n \"cy\",\n \"cy-gb\",\n \"da\",\n \"dav\",\n \"dav-ke\",\n \"da-dk\",\n \"da-gl\",\n \"de\",\n \"de-at\",\n \"de-be\",\n \"de-ch\",\n \"de-de\",\n \"de-gr\",\n \"de-it\",\n \"de-li\",\n \"de-lu\",\n \"dje\",\n \"dje-ne\",\n \"doi\",\n \"doi-in\",\n \"dsb\",\n \"dsb-de\",\n \"dua\",\n \"dua-cm\",\n \"dyo\",\n \"dyo-sn\",\n \"dz\",\n \"dz-bt\",\n \"ebu\",\n \"ebu-ke\",\n \"ee\",\n \"ee-gh\",\n \"ee-tg\",\n \"el\",\n \"el-cy\",\n \"el-gr\",\n \"en\",\n \"en-001\",\n \"en-150\",\n \"en-ae\",\n \"en-ag\",\n \"en-ai\",\n \"en-as\",\n \"en-at\",\n \"en-au\",\n \"en-bb\",\n \"en-be\",\n \"en-bi\",\n \"en-bm\",\n \"en-bs\",\n \"en-bw\",\n \"en-bz\",\n \"en-ca\",\n \"en-cc\",\n \"en-ch\",\n \"en-ck\",\n \"en-cm\",\n \"en-cn\",\n \"en-cx\",\n \"en-cy\",\n \"en-de\",\n \"en-dg\",\n \"en-dk\",\n \"en-dm\",\n \"en-ee\",\n \"en-eg\",\n \"en-er\",\n \"en-es\",\n \"en-fi\",\n \"en-fj\",\n \"en-fk\",\n \"en-fm\",\n \"en-fr\",\n \"en-gb\",\n \"en-gd\",\n \"en-gg\",\n \"en-gh\",\n \"en-gi\",\n \"en-gm\",\n \"en-gu\",\n \"en-gy\",\n \"en-hk\",\n \"en-ie\",\n \"en-il\",\n \"en-im\",\n \"en-in\",\n \"en-io\",\n \"en-je\",\n \"en-jm\",\n \"en-ke\",\n \"en-ki\",\n \"en-kn\",\n \"en-ky\",\n \"en-lc\",\n \"en-lr\",\n \"en-ls\",\n \"en-lu\",\n \"en-mg\",\n \"en-mh\",\n \"en-mo\",\n \"en-mp\",\n \"en-ms\",\n \"en-mt\",\n \"en-mu\",\n \"en-mv\",\n \"en-mw\",\n \"en-mx\",\n \"en-my\",\n \"en-na\",\n \"en-nf\",\n \"en-ng\",\n \"en-nl\",\n \"en-nr\",\n \"en-nu\",\n \"en-nz\",\n \"en-pg\",\n \"en-ph\",\n \"en-pk\",\n \"en-pn\",\n \"en-pr\",\n \"en-pw\",\n \"en-rw\",\n \"en-sb\",\n \"en-sc\",\n \"en-sd\",\n \"en-se\",\n \"en-sg\",\n \"en-sh\",\n \"en-si\",\n \"en-sl\",\n \"en-ss\",\n \"en-sx\",\n \"en-sz\",\n \"en-tc\",\n \"en-tk\",\n \"en-tn\",\n \"en-to\",\n \"en-tt\",\n \"en-tv\",\n \"en-tz\",\n \"en-ug\",\n \"en-um\",\n \"en-us\",\n \"en-vc\",\n \"en-vg\",\n \"en-vi\",\n \"en-vu\",\n \"en-ws\",\n \"en-za\",\n \"en-zm\",\n \"en-zw\",\n \"eo\",\n \"eo-001\",\n \"es\",\n \"es-419\",\n \"es-ar\",\n \"es-bo\",\n \"es-br\",\n \"es-bz\",\n \"es-cl\",\n \"es-co\",\n \"es-cr\",\n \"es-cu\",\n \"es-do\",\n \"es-ea\",\n \"es-ec\",\n \"es-es\",\n \"es-gq\",\n \"es-gt\",\n \"es-hn\",\n \"es-ic\",\n \"es-mx\",\n \"es-ni\",\n \"es-pa\",\n \"es-pe\",\n \"es-ph\",\n \"es-pr\",\n \"es-py\",\n \"es-sv\",\n \"es-us\",\n \"es-uy\",\n \"es-ve\",\n \"et\",\n \"et-ee\",\n \"eu\",\n \"eu-es\",\n \"ewo\",\n \"ewo-cm\",\n \"fa\",\n \"fa-af\",\n \"fa-ir\",\n \"ff\",\n \"ff-bf\",\n \"ff-cm\",\n \"ff-gh\",\n \"ff-gm\",\n \"ff-gn\",\n \"ff-gw\",\n \"ff-lr\",\n \"ff-mr\",\n \"ff-ne\",\n \"ff-ng\",\n \"ff-sl\",\n \"ff-sn\",\n \"fi\",\n \"fil\",\n \"fil-ph\",\n \"fi-fi\",\n \"fo\",\n \"fo-dk\",\n \"fo-fo\",\n \"fr\",\n \"frr\",\n \"frr-de\",\n \"fr-be\",\n \"fr-bf\",\n \"fr-bi\",\n \"fr-bj\",\n \"fr-bl\",\n \"fr-ca\",\n \"fr-cd\",\n \"fr-cf\",\n \"fr-cg\",\n \"fr-ch\",\n \"fr-ci\",\n \"fr-cm\",\n \"fr-dj\",\n \"fr-dz\",\n \"fr-fr\",\n \"fr-ga\",\n \"fr-gf\",\n \"fr-gn\",\n \"fr-gp\",\n \"fr-gq\",\n \"fr-ht\",\n \"fr-km\",\n \"fr-lu\",\n \"fr-ma\",\n \"fr-mc\",\n \"fr-mf\",\n \"fr-mg\",\n \"fr-ml\",\n \"fr-mq\",\n \"fr-mr\",\n \"fr-mu\",\n \"fr-nc\",\n \"fr-ne\",\n \"fr-pf\",\n \"fr-pm\",\n \"fr-re\",\n \"fr-rw\",\n \"fr-sc\",\n \"fr-sn\",\n \"fr-sy\",\n \"fr-td\",\n \"fr-tg\",\n \"fr-tn\",\n \"fr-vu\",\n \"fr-wf\",\n \"fr-yt\",\n \"fur\",\n \"fur-it\",\n \"fy\",\n \"fy-nl\",\n \"ga\",\n \"ga-gb\",\n \"ga-ie\",\n \"gd\",\n \"gd-gb\",\n \"gl\",\n \"gl-es\",\n \"gsw\",\n \"gsw-ch\",\n \"gsw-fr\",\n \"gsw-li\",\n \"gu\",\n \"guz\",\n \"guz-ke\",\n \"gu-in\",\n \"gv\",\n \"gv-im\",\n \"ha\",\n \"haw\",\n \"haw-us\",\n \"ha-gh\",\n \"ha-ne\",\n \"ha-ng\",\n \"he\",\n \"he-il\",\n \"hi\",\n \"hi-in\",\n \"hr\",\n \"hr-ba\",\n \"hr-hr\",\n \"hsb\",\n \"hsb-de\",\n \"hu\",\n \"hu-hu\",\n \"hy\",\n \"hy-am\",\n \"ia\",\n \"ia-001\",\n \"id\",\n \"ig\",\n \"ig-ng\",\n \"ii\",\n \"ii-cn\",\n \"id-id\",\n \"is\",\n \"is-is\",\n \"it\",\n \"it-ch\",\n \"it-it\",\n \"it-sm\",\n \"it-va\",\n \"ja\",\n \"ja-jp\",\n \"jgo\",\n \"jgo-cm\",\n \"yi\",\n \"yi-001\",\n \"jmc\",\n \"jmc-tz\",\n \"jv\",\n \"jv-id\",\n \"ka\",\n \"kab\",\n \"kab-dz\",\n \"kam\",\n \"kam-ke\",\n \"ka-ge\",\n \"kde\",\n \"kde-tz\",\n \"kea\",\n \"kea-cv\",\n \"kgp\",\n \"kgp-br\",\n \"khq\",\n \"khq-ml\",\n \"ki\",\n \"ki-ke\",\n \"kk\",\n \"kkj\",\n \"kkj-cm\",\n \"kk-kz\",\n \"kl\",\n \"kln\",\n \"kln-ke\",\n \"kl-gl\",\n \"km\",\n \"km-kh\",\n \"kn\",\n \"kn-in\",\n \"ko\",\n \"kok\",\n \"kok-in\",\n \"ko-kp\",\n \"ko-kr\",\n \"ks\",\n \"ksb\",\n \"ksb-tz\",\n \"ksf\",\n \"ksf-cm\",\n \"ksh\",\n \"ksh-de\",\n \"ks-in\",\n \"ku\",\n \"ku-tr\",\n \"kw\",\n \"kw-gb\",\n \"ky\",\n \"ky-kg\",\n \"lag\",\n \"lag-tz\",\n \"lb\",\n \"lb-lu\",\n \"lg\",\n \"lg-ug\",\n \"lkt\",\n \"lkt-us\",\n \"ln\",\n \"ln-ao\",\n \"ln-cd\",\n \"ln-cf\",\n \"ln-cg\",\n \"lo\",\n \"lo-la\",\n \"lrc\",\n \"lrc-iq\",\n \"lrc-ir\",\n \"lt\",\n \"lt-lt\",\n \"lu\",\n \"luo\",\n \"luo-ke\",\n \"luy\",\n \"luy-ke\",\n \"lu-cd\",\n \"lv\",\n \"lv-lv\",\n \"mai\",\n \"mai-in\",\n \"mas\",\n \"mas-ke\",\n \"mas-tz\",\n \"mdf\",\n \"mdf-ru\",\n \"mer\",\n \"mer-ke\",\n \"mfe\",\n \"mfe-mu\",\n \"mg\",\n \"mgh\",\n \"mgh-mz\",\n \"mgo\",\n \"mgo-cm\",\n \"mg-mg\",\n \"mi\",\n \"mi-nz\",\n \"mk\",\n \"mk-mk\",\n \"ml\",\n \"ml-in\",\n \"mn\",\n \"mni\",\n \"mni-in\",\n \"mn-mn\",\n \"mr\",\n \"mr-in\",\n \"ms\",\n \"ms-bn\",\n \"ms-id\",\n \"ms-my\",\n \"ms-sg\",\n \"mt\",\n \"mt-mt\",\n \"mua\",\n \"mua-cm\",\n \"my\",\n \"my-mm\",\n \"mzn\",\n \"mzn-ir\",\n \"naq\",\n \"naq-na\",\n \"nb\",\n \"nb-no\",\n \"nb-sj\",\n \"nd\",\n \"nds\",\n \"nds-de\",\n \"nds-nl\",\n \"nd-zw\",\n \"ne\",\n \"ne-in\",\n \"ne-np\",\n \"nl\",\n \"nl-aw\",\n \"nl-be\",\n \"nl-bq\",\n \"nl-ch\",\n \"nl-cw\",\n \"nl-lu\",\n \"nl-nl\",\n \"nl-sr\",\n \"nl-sx\",\n \"nmg\",\n \"nmg-cm\",\n \"nn\",\n \"nnh\",\n \"nnh-cm\",\n \"nn-no\",\n \"no\",\n \"no-no\",\n \"nus\",\n \"nus-ss\",\n \"nyn\",\n \"nyn-ug\",\n \"oc\",\n \"oc-es\",\n \"oc-fr\",\n \"om\",\n \"om-et\",\n \"om-ke\",\n \"or\",\n \"or-in\",\n \"os\",\n \"os-ge\",\n \"os-ru\",\n \"pa\",\n \"pa-in\",\n \"pa-pk\",\n \"pcm\",\n \"pcm-ng\",\n \"pis\",\n \"pis-sb\",\n \"pl\",\n \"pl-pl\",\n \"prg\",\n \"prg-001\",\n \"ps\",\n \"ps-af\",\n \"ps-pk\",\n \"pt\",\n \"pt-ao\",\n \"pt-br\",\n \"pt-ch\",\n \"pt-cv\",\n \"pt-gq\",\n \"pt-gw\",\n \"pt-lu\",\n \"pt-mo\",\n \"pt-mz\",\n \"pt-pt\",\n \"pt-st\",\n \"pt-tl\",\n \"qu\",\n \"qu-bo\",\n \"qu-ec\",\n \"qu-pe\",\n \"raj\",\n \"raj-in\",\n \"rm\",\n \"rm-ch\",\n \"rn\",\n \"rn-bi\",\n \"ro\",\n \"rof\",\n \"rof-tz\",\n \"ro-md\",\n \"ro-ro\",\n \"ru\",\n \"ru-by\",\n \"ru-kg\",\n \"ru-kz\",\n \"ru-md\",\n \"ru-ru\",\n \"ru-ua\",\n \"rw\",\n \"rwk\",\n \"rwk-tz\",\n \"rw-rw\",\n \"sa\",\n \"sah\",\n \"sah-ru\",\n \"saq\",\n \"saq-ke\",\n \"sat\",\n \"sat-in\",\n \"sa-in\",\n \"sbp\",\n \"sbp-tz\",\n \"sc\",\n \"sc-it\",\n \"sd\",\n \"sd-in\",\n \"sd-pk\",\n \"se\",\n \"seh\",\n \"seh-mz\",\n \"ses\",\n \"ses-ml\",\n \"se-fi\",\n \"se-no\",\n \"se-se\",\n \"sg\",\n \"sg-cf\",\n \"shi\",\n \"shi-ma\",\n \"si\",\n \"si-lk\",\n \"sk\",\n \"sk-sk\",\n \"sl\",\n \"sl-si\",\n \"smn\",\n \"smn-fi\",\n \"sms\",\n \"sms-fi\",\n \"sn\",\n \"sn-zw\",\n \"so\",\n \"so-dj\",\n \"so-et\",\n \"so-ke\",\n \"so-so\",\n \"sq\",\n \"sq-al\",\n \"sq-mk\",\n \"sq-xk\",\n \"sr\",\n \"sr-ba\",\n \"sr-cs\",\n \"sr-me\",\n \"sr-rs\",\n \"sr-xk\",\n \"su\",\n \"su-id\",\n \"sv\",\n \"sv-ax\",\n \"sv-fi\",\n \"sv-se\",\n \"sw\",\n \"sw-cd\",\n \"sw-ke\",\n \"sw-tz\",\n \"sw-ug\",\n \"sy\",\n \"ta\",\n \"ta-in\",\n \"ta-lk\",\n \"ta-my\",\n \"ta-sg\",\n \"te\",\n \"teo\",\n \"teo-ke\",\n \"teo-ug\",\n \"te-in\",\n \"tg\",\n \"tg-tj\",\n \"th\",\n \"th-th\",\n \"ti\",\n \"ti-er\",\n \"ti-et\",\n \"tk\",\n \"tk-tm\",\n \"tl\",\n \"to\",\n \"tok\",\n \"tok-001\",\n \"to-to\",\n \"tr\",\n \"tr-cy\",\n \"tr-tr\",\n \"tt\",\n \"tt-ru\",\n \"twq\",\n \"twq-ne\",\n \"tzm\",\n \"tzm-ma\",\n \"ug\",\n \"ug-cn\",\n \"uk\",\n \"uk-ua\",\n \"ur\",\n \"ur-in\",\n \"ur-pk\",\n \"uz\",\n \"uz-af\",\n \"uz-uz\",\n \"vai\",\n \"vai-lr\",\n \"vi\",\n \"vi-vn\",\n \"vo\",\n \"vo-001\",\n \"vun\",\n \"vun-tz\",\n \"wae\",\n \"wae-ch\",\n \"wo\",\n \"wo-sn\",\n \"xh\",\n \"xh-za\",\n \"xog\",\n \"xog-ug\",\n \"yav\",\n \"yav-cm\",\n \"yo\",\n \"yo-bj\",\n \"yo-ng\",\n \"yrl\",\n \"yrl-br\",\n \"yrl-co\",\n \"yrl-ve\",\n \"yue\",\n \"yue-cn\",\n \"yue-hk\",\n \"zgh\",\n \"zgh-ma\",\n \"zh\",\n \"zh-cn\",\n \"zh-hans\",\n \"zh-hant\",\n \"zh-hk\",\n \"zh-mo\",\n \"zh-sg\",\n \"zh-tw\",\n \"zu\",\n \"zu-za\"\n ]\n },\n \"businessUnitId\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"content\": {\n \"type\": \"object\",\n \"properties\": {\n \"smartFields\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"An email field whose value is controlled by one or more smart rules.\"\n }\n },\n \"themeSettingsValues\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"flexAreas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"widgets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"plainTextVersion\": {\n \"type\": \"string\"\n },\n \"templatePath\": {\n \"type\": \"string\"\n },\n \"widgetContainers\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n }\n },\n \"styleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"backgroundImage\": {\n \"type\": \"string\"\n },\n \"backgroundImageType\": {\n \"type\": \"string\"\n },\n \"bodyColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderColor\": {\n \"type\": \"string\"\n },\n \"bodyBorderWidth\": {\n \"type\": \"number\"\n },\n \"bodyBorderColorChoice\": {\n \"type\": \"string\"\n },\n \"primaryFont\": {\n \"type\": \"string\"\n },\n \"primaryFontColor\": {\n \"type\": \"string\"\n },\n \"primaryAccentColor\": {\n \"type\": \"string\"\n },\n \"primaryFontSize\": {\n \"type\": \"number\"\n },\n \"primaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"secondaryFont\": {\n \"type\": \"string\"\n },\n \"secondaryFontColor\": {\n \"type\": \"string\"\n },\n \"secondaryAccentColor\": {\n \"type\": \"string\"\n },\n \"secondaryFontSize\": {\n \"type\": \"number\"\n },\n \"secondaryFontLineHeight\": {\n \"type\": \"string\"\n },\n \"headingOneFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"headingTwoFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"linksFont\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"colorPickerFavorite1\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite2\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite3\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite4\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite5\": {\n \"type\": \"string\"\n },\n \"colorPickerFavorite6\": {\n \"type\": \"string\"\n },\n \"emailBodyPadding\": {\n \"type\": \"string\"\n },\n \"emailBodyWidth\": {\n \"type\": \"string\"\n },\n \"buttonStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"backgroundColor\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"cornerRadius\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"fontStyle\": {\n \"type\": \"object\",\n \"properties\": {\n \"font\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"dividerStyleSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"height\": {\n \"type\": \"integer\",\n \"format\": \"int32\"\n },\n \"color\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"lineType\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"description\": \"Data structure representing the content of the email.\"\n },\n \"webversion\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"redirectToPageId\": {\n \"type\": \"string\"\n },\n \"isPageRedirected\": {\n \"type\": \"boolean\"\n },\n \"redirectToUrl\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"pageExpiryEnabled\": {\n \"type\": \"boolean\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"url\": {\n \"type\": \"string\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"archived\": {\n \"type\": \"boolean\",\n \"description\": \"Determines if the email is archived or not.\"\n },\n \"subscriptionDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"officeLocationId\": {\n \"type\": \"string\",\n \"description\": \"ID of the selected office location.\"\n },\n \"subscriptionName\": {\n \"type\": \"string\"\n },\n \"preferencesGroupId\": {\n \"type\": \"string\"\n },\n \"subscriptionId\": {\n \"type\": \"string\",\n \"description\": \"ID of the subscription.\"\n }\n },\n \"description\": \"Data structure representing the subscription fields of the email.\"\n },\n \"activeDomain\": {\n \"type\": \"string\",\n \"description\": \"The active domain of the email.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the email, as displayed on the email dashboard.\"\n },\n \"campaign\": {\n \"type\": \"string\",\n \"description\": \"The ID of the campaign this email is associated to.\"\n },\n \"from\": {\n \"type\": \"object\",\n \"properties\": {\n \"customReplyTo\": {\n \"type\": \"string\",\n \"description\": \"The reply to recipients will see.\"\n },\n \"fromName\": {\n \"type\": \"string\",\n \"description\": \"The name recipients will see.\"\n },\n \"replyTo\": {\n \"type\": \"string\",\n \"description\": \"The from address and reply to email address (if no customReplyTo defined) recipients will see.\"\n }\n },\n \"description\": \"Data structure representing the from fields on the email.\"\n },\n \"jitterSendTime\": {\n \"type\": \"boolean\"\n },\n \"state\": {\n \"type\": \"string\",\n \"description\": \"The email state.\",\n \"enum\": [\n \"AUTOMATED\",\n \"AUTOMATED_DRAFT\",\n \"AUTOMATED_SENDING\",\n \"AUTOMATED_FOR_FORM\",\n \"AUTOMATED_FOR_FORM_BUFFER\",\n \"AUTOMATED_FOR_FORM_DRAFT\",\n \"AUTOMATED_FOR_FORM_LEGACY\",\n \"BLOG_EMAIL_DRAFT\",\n \"BLOG_EMAIL_PUBLISHED\",\n \"DRAFT\",\n \"DRAFT_AB\",\n \"DRAFT_AB_VARIANT\",\n \"ERROR\",\n \"LOSER_AB_VARIANT\",\n \"PAGE_STUB\",\n \"PRE_PROCESSING\",\n \"PROCESSING\",\n \"PUBLISHED\",\n \"PUBLISHED_AB\",\n \"PUBLISHED_AB_VARIANT\",\n \"PUBLISHED_OR_SCHEDULED\",\n \"RSS_TO_EMAIL_DRAFT\",\n \"RSS_TO_EMAIL_PUBLISHED\",\n \"SCHEDULED\",\n \"SCHEDULED_AB\",\n \"SCHEDULED_OR_PUBLISHED\",\n \"AUTOMATED_AB\",\n \"AUTOMATED_AB_VARIANT\",\n \"AUTOMATED_DRAFT_AB\",\n \"AUTOMATED_DRAFT_ABVARIANT\",\n \"AUTOMATED_LOSER_ABVARIANT\",\n \"AGENT_GENERATED\"\n ]\n },\n \"to\": {\n \"type\": \"object\",\n \"properties\": {\n \"contactIlsLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"limitSendFrequency\": {\n \"type\": \"boolean\"\n },\n \"suppressGraymail\": {\n \"type\": \"boolean\"\n },\n \"contactIds\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n },\n \"contactLists\": {\n \"type\": \"object\",\n \"properties\": {\n \"include\": {\n \"type\": \"array\",\n \"description\": \"Included IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"Excluded IDs.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Data structure representing lists of IDs that should be included and excluded.\"\n }\n },\n \"description\": \"Data structure representing the to fields of the email.\"\n },\n \"subcategory\": {\n \"type\": \"string\",\n \"description\": \"The email subcategory.\",\n \"enum\": [\n \"ab_master\",\n \"ab_variant\",\n \"ab_loser_variant\",\n \"page_stub\",\n \"landing_page\",\n \"site_page\",\n \"legacy_page\",\n \"ab_master_site_page\",\n \"ab_variant_site_page\",\n \"ab_loser_variant_site_page\",\n \"performable_landing_page\",\n \"performable_landing_page_cutover\",\n \"staged_page\",\n \"automated\",\n \"automated_for_deal\",\n \"automated_for_form\",\n \"automated_for_form_legacy\",\n \"automated_for_form_buffer\",\n \"automated_for_form_draft\",\n \"rss_to_email\",\n \"rss_to_email_child\",\n \"blog_email\",\n \"blog_email_child\",\n \"optin_email\",\n \"optin_followup_email\",\n \"batch\",\n \"resubscribe_email\",\n \"unsubscribe_confirmation_email\",\n \"resubscribe_confirmation_email\",\n \"single_send_api\",\n \"marketing_single_send_api\",\n \"smtp_token\",\n \"localtime\",\n \"automated_for_ticket\",\n \"automated_for_leadflow\",\n \"automated_for_feedback_ces\",\n \"automated_for_feedback_nps\",\n \"automated_for_feedback_custom\",\n \"membership_registration\",\n \"membership_password_saved\",\n \"membership_password_reset\",\n \"membership_otp_login\",\n \"membership_passwordless_auth\",\n \"membership_email_verification\",\n \"membership_registration_follow_up\",\n \"membership_verification\",\n \"membership_follow_up\",\n \"ticket_closed_kickback_email\",\n \"ticket_opened_kickback_email\",\n \"automated_for_custom_survey\",\n \"discardable_stub\",\n \"normal_blog_post\",\n \"legacy_blog_post\",\n \"imported_blog_post\",\n \"automated_ab_master\",\n \"automated_ab_variant\",\n \"web_interactive\",\n \"portal_content\",\n \"page_instance_layout\",\n \"kb_article_instance_layout\",\n \"kb_listing\",\n \"kb_search_results\",\n \"kb_support_form\",\n \"kb_404_page\",\n \"case_study\",\n \"case_study_listing\",\n \"case_study_instance_layout\",\n \"scp_static_page\",\n \"scp_instance_layout_page\",\n \"podcast_instance_layout\",\n \"podcast_listing\",\n \"blog_article_instance_layout\",\n \"blog_article_listing\",\n \"blog_author_detail\",\n \"UNKNOWN\"\n ]\n },\n \"sendOnPublish\": {\n \"type\": \"boolean\",\n \"description\": \"Determines whether the email will be sent immediately on publish.\"\n }\n },\n \"description\": \"Properties of a marketing email you can update via the API.\",\n \"example\": {\n \"activeDomain\": \"test.hs-sites.com\",\n \"archived\": false,\n \"campaign\": \"1b7f51a6-33c1-44d6-ba28-fe81f655dced\",\n \"content\": {\n \"flexAreas\": {\n \"main\": {\n \"boxed\": false,\n \"isSingleColumnFullWidth\": false,\n \"sections\": [\n {\n \"columns\": [\n {\n \"id\": \"column_1606761806181_0\",\n \"widgets\": [\n \"module_160676180617911\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section_1606761806181\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-0-1\",\n \"widgets\": [\n \"module-0-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-0\",\n \"style\": {\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"40px\",\n \"paddingTop\": \"40px\"\n }\n },\n {\n \"columns\": [\n {\n \"id\": \"column-1-1\",\n \"widgets\": [\n \"module-1-1-1\"\n ],\n \"width\": 12\n }\n ],\n \"id\": \"section-1\",\n \"style\": {\n \"backgroundColor\": \"\",\n \"backgroundType\": \"CONTENT\",\n \"paddingBottom\": \"0px\",\n \"paddingTop\": \"0px\"\n }\n }\n ]\n }\n },\n \"plainTextVersion\": \"This is custom! View in browser ({{view_as_page_url}})\\n\\nHello {{ contact.firstname }},\\n\\nPlain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.\\n\\nEvery email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.\\n\\nLink text\\n\\nNow it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.\\n\\nAll the best,\\n\\nYour full name\\n\\nYour job title\\n\\nOther contact information\\n\\n{{site_settings.company_name}}, {{site_settings.company_street_address_1}}, {{site_settings.company_street_address_2}}, {{site_settings.company_city}}, {{site_settings.company_state}} {{site_settings.company_zip}}, {{site_settings.company_country}}, {{site_settings.company_phone}}\\n\\nUnsubscribe ({{unsubscribe_link_all}})\\n\\nManage preferences ({{unsubscribe_link}})\",\n \"styleSettings\": {},\n \"widgets\": {\n \"module-0-1-1\": {\n \"body\": {\n \"css_class\": \"dnd-module\",\n \"html\": \"

Hello {{ contact.firstname }},

Plain text emails have minimal formatting so your reader can really focus on what you have to say. Introduce yourself and explain why you\\u2019re reaching out.

Every email should try to lead the reader to some kind of action. Use this space to describe why the reader should want to click on the link below. Put the link on its own line to really draw their eye to it.

Link text

Now it\\u2019s time to wrap up your email. Before your signature, thank the recipient for reading. You can also invite them to send this email to any of their colleagues who might be interested.

All the best,
Your full name
Your job title
Other contact information

\",\n \"i18nKey\": \"richText.plainText\",\n \"path\": \"@hubspot/rich_text\",\n \"schema_version\": 2\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-0-1-1\",\n \"module_id\": 1155639,\n \"name\": \"module-0-1-1\",\n \"order\": 2,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module-1-1-1\": {\n \"body\": {\n \"align\": \"center\",\n \"css_class\": \"dnd-module\",\n \"font\": {\n \"color\": \"#23496d\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n }\n },\n \"link_font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Helvetica,Arial,sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"path\": \"@hubspot/email_footer\",\n \"schema_version\": 2,\n \"unsubscribe_link_type\": \"both\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module-1-1-1\",\n \"module_id\": 2869621,\n \"name\": \"module-1-1-1\",\n \"order\": 3,\n \"styles\": {},\n \"type\": \"module\"\n },\n \"module_160676180617911\": {\n \"body\": {\n \"font\": {\n \"color\": \"#00a4bd\",\n \"font\": \"Arial, sans-serif\",\n \"size\": {\n \"units\": \"px\",\n \"value\": 12\n },\n \"styles\": {\n \"bold\": false,\n \"italic\": false,\n \"underline\": true\n }\n },\n \"hs_enable_module_padding\": false,\n \"hs_wrapper_css\": {}\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"module_160676180617911\",\n \"module_id\": 2794854,\n \"name\": \"module_160676180617911\",\n \"styles\": {},\n \"type\": \"module\"\n },\n \"preview_text\": {\n \"body\": {\n \"value\": \"\"\n },\n \"child_css\": {},\n \"css\": {},\n \"id\": \"preview_text\",\n \"label\": \"Preview Text This will be used as the preview text that displays in some email clients\",\n \"name\": \"preview_text\",\n \"order\": 0,\n \"styles\": {},\n \"type\": \"text\"\n }\n }\n },\n \"createdAt\": \"2020-11-30T18:43:17.136Z\",\n \"createdById\": 3739732,\n \"from\": {\n \"fromName\": \"Bruce Wayne\",\n \"replyTo\": \"test@hubspot.com\"\n },\n \"name\": \"My subject\",\n \"publishDate\": \"2023-11-30T18:44:20.387Z\",\n \"sendOnPublish\": true,\n \"state\": \"DRAFT\",\n \"subcategory\": \"batch\",\n \"subject\": \"My subject\",\n \"subscriptionDetails\": {\n \"officeLocationId\": \"5449392956\"\n },\n \"to\": {\n \"contactIds\": {},\n \"contactIlsLists\": {\n \"exclude\": [\n 1\n ],\n \"include\": [\n 5\n ]\n },\n \"suppressGraymail\": true\n },\n \"webversion\": {\n \"expiresAt\": \"2020-11-30T18:44:20.387Z\",\n \"metaDescription\": \"\",\n \"redirectToPageId\": 0,\n \"redirectToUrl\": \"http://www.example.org\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventDetails.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventDetails.json new file mode 100644 index 00000000..41571f24 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventDetails.json @@ -0,0 +1,851 @@ +{ + "name": "UpdateMarketingEventDetails", + "fully_qualified_name": "HubspotMarketingApi.UpdateMarketingEventDetails@0.1.0", + "description": "Update details of an existing marketing event.\n\nUse this tool to update the details of an existing marketing event identified by its external event ID. It is applicable only for events created by the same app.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_account_id", + "required": true, + "description": "The account ID associated with this marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalAccountId" + }, + { + "name": "external_event_id", + "required": true, + "description": "The unique identifier of the marketing event in the external event application.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "marketing_event_details", + "required": true, + "description": "JSON object containing updated marketing event details like startDateTime, customProperties, eventCancelled, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'patch-/marketing/v3/marketing-events/events/{externalEventId}_update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "externalAccountId", + "tool_parameter_name": "external_account_id", + "description": "The accountId that is associated with this marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application" + }, + "accepted_as": "query", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventsBatch.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventsBatch.json new file mode 100644 index 00000000..ddaad1e6 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpdateMarketingEventsBatch.json @@ -0,0 +1,803 @@ +{ + "name": "UpdateMarketingEventsBatch", + "fully_qualified_name": "HubspotMarketingApi.UpdateMarketingEventsBatch@0.1.0", + "description": "Update multiple marketing events by objectId.\n\nThis tool updates multiple marketing events in the HubSpot portal based on their objectId, if they exist. It should be called when you need to batch update event details efficiently.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_events_update_details", + "required": true, + "description": "JSON object containing details for each marketing event to update. Includes properties like `objectId`, `eventName`, `eventType`, `eventUrl`, and custom properties.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/batch/update_updateByObjectId'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/batch/update", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "marketing_events_update_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "objectId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"customProperties\",\n \"objectId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"eventCancelled\": {\n \"type\": \"boolean\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\"\n },\n \"eventUrl\": {\n \"type\": \"string\"\n },\n \"eventDescription\": {\n \"type\": \"string\"\n },\n \"eventName\": {\n \"type\": \"string\"\n },\n \"eventType\": {\n \"type\": \"string\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"objectId\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvent.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvent.json new file mode 100644 index 00000000..3e9a1376 --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvent.json @@ -0,0 +1,850 @@ +{ + "name": "UpsertMarketingEvent", + "fully_qualified_name": "HubspotMarketingApi.UpsertMarketingEvent@0.1.0", + "description": "Upsert a marketing event in HubSpot.\n\nUpserts a marketing event using the provided external event ID. If an event with that ID exists, it updates the event; otherwise, it creates a new one.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "external_event_id", + "required": true, + "description": "The ID of the marketing event in the external application. Used to upsert the event in HubSpot.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "inferrable": true, + "http_endpoint_parameter_name": "externalEventId" + }, + { + "name": "marketing_event_details", + "required": true, + "description": "Details of the marketing event, including start/end times, organizer, and custom properties. JSON format expected.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'put-/marketing/v3/marketing-events/events/{externalEventId}_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/{externalEventId}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "externalEventId", + "tool_parameter_name": "external_event_id", + "description": "The id of the marketing event in the external event application", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_details", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"eventName\",\n \"eventOrganizer\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvents.json b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvents.json new file mode 100644 index 00000000..5fdb8d7b --- /dev/null +++ b/toolkits/hubspot_marketing_api/arcade_hubspot_marketing_api/wrapper_tools/UpsertMarketingEvents.json @@ -0,0 +1,835 @@ +{ + "name": "UpsertMarketingEvents", + "fully_qualified_name": "HubspotMarketingApi.UpsertMarketingEvents@0.1.0", + "description": "Upsert multiple marketing events in HubSpot.\n\nUpserts multiple marketing events. Updates existing events with the same ID or creates new ones if they don't exist. Only events created by the same app can be updated.", + "toolkit": { + "name": "HubspotMarketingApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "marketing_event_data", + "required": true, + "description": "JSON object containing a list of marketing events with properties like startDateTime, customProperties, eventName, etc. Used to upsert events.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'post-/marketing/v3/marketing-events/events/upsert_upsert'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": { + "provider_id": "arcade-hubspot", + "provider_type": "oauth2", + "id": null, + "oauth2": { + "scopes": [ + "crm.objects.marketing_events.write" + ] + } + }, + "secrets": null, + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Arcade Starter tools for LLMs to interact directly with the low-level Hubspot Marketing API" + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "https://api.hubapi.com/marketing/v3/marketing-events/events/upsert", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "marketing_event_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "inputs": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "startDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The start date and time of the marketing event." + }, + "customProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "sourceId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the property source indicating where it was created." + }, + "selectedByUser": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the value was selected by a user." + }, + "sourceLabel": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A human-readable label." + }, + "sourceUpstreamDeployable": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "source": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "UNKNOWN", + "IMPORT", + "API", + "FORM", + "ANALYTICS", + "MIGRATION", + "SALESFORCE", + "INTEGRATION", + "CONTACTS_WEB", + "WAL_INCREMENTAL", + "TASK", + "EMAIL", + "WORKFLOWS", + "CALCULATED", + "SOCIAL", + "BATCH_UPDATE", + "SIGNALS", + "BIDEN", + "DEFAULT", + "COMPANIES", + "DEALS", + "ASSISTS", + "PRESENTATIONS", + "TALLY", + "SIDEKICK", + "CRM_UI", + "MERGE_CONTACTS", + "PORTAL_USER_ASSOCIATOR", + "INTEGRATIONS_PLATFORM", + "BCC_TO_CRM", + "FORWARD_TO_CRM", + "ENGAGEMENTS", + "SALES", + "HEISENBERG", + "LEADIN", + "GMAIL_INTEGRATION", + "ACADEMY", + "SALES_MESSAGES", + "AVATARS_SERVICE", + "MERGE_COMPANIES", + "SEQUENCES", + "COMPANY_FAMILIES", + "MOBILE_IOS", + "MOBILE_ANDROID", + "CONTACTS", + "ASSOCIATIONS", + "EXTENSION", + "SUCCESS", + "BOT", + "INTEGRATIONS_SYNC", + "AUTOMATION_PLATFORM", + "CONVERSATIONS", + "EMAIL_INTEGRATION", + "CONTENT_MEMBERSHIP", + "QUOTES", + "BET_ASSIGNMENT", + "QUOTAS", + "BET_CRM_CONNECTOR", + "MEETINGS", + "MERGE_OBJECTS", + "RECYCLING_BIN", + "ADS", + "AI_GROUP", + "COMMUNICATOR", + "SETTINGS", + "PROPERTY_SETTINGS", + "PIPELINE_SETTINGS", + "COMPANY_INSIGHTS", + "BEHAVIORAL_EVENTS", + "PAYMENTS", + "GOALS", + "PORTAL_OBJECT_SYNC", + "APPROVALS", + "FILE_MANAGER", + "MARKETPLACE", + "INTERNAL_PROCESSING", + "FORECASTING", + "SLACK_INTEGRATION", + "CRM_UI_BULK_ACTION", + "WORKFLOW_CONTACT_DELETE_ACTION", + "ACCEPTANCE_TEST", + "PLAYBOOKS", + "CHATSPOT", + "FLYWHEEL_PRODUCT_DATA_SYNC", + "HELP_DESK", + "BILLING", + "DATA_ENRICHMENT", + "AUTOMATION_JOURNEY", + "MICROAPPS", + "INTENT", + "PROSPECTING_AGENT", + "CENTRAL_EXCHANGE_RATES", + "HELP_DESK_AI", + "CONVERSATIONAL_ENRICHMENT", + "CRM_PROCESSES_PLATFORM", + "CLONE_OBJECTS", + "MARKET_SOURCING", + "DATASET", + "PROPERTY_RESTORE" + ], + "properties": null, + "inner_properties": null, + "description": "The origin of the property value, such as \"IMPORT\" or \"API\"." + }, + "updatedByUserId": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the user who updated the property." + }, + "persistenceTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "sourceMetadata": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`" + }, + "dataSensitivity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "none", + "standard", + "high" + ], + "properties": null, + "inner_properties": null, + "description": "The sensitivity level of the property, such as \"non_sensitive\", \"sensitive\", and \"highly_sensitive\"." + }, + "sourceVid": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier associated with the source." + }, + "unit": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unit of measurement or context for the value." + }, + "requestId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A unique ID associated with this request." + }, + "isEncrypted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the property value is encrypted." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of custom property" + }, + "useTimestampAsPersistenceTimestamp": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "value": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Custom property value" + }, + "selectedByUserTimestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The timestamp when the value was selected by a user, if applicable." + }, + "timestamp": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "When the value was set, as a 64-bit integer." + }, + "isLargeValue": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "description": "A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\n" + }, + "externalAccountId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The accountId that is associated with this marketing event in the external event application." + }, + "eventCancelled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Indicates if the marketing event has been cancelled. Defaults to `false`" + }, + "eventOrganizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the organizer of the marketing event." + }, + "eventUrl": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A URL in the external event application where the marketing event can be managed." + }, + "externalEventId": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The id of the marketing event in the external event application." + }, + "eventDescription": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The description of the marketing event." + }, + "eventName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the marketing event." + }, + "eventType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`" + }, + "eventCompleted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "endDateTime": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The end date and time of the marketing event." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "auth_token", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "The OAuth token to use for authentication.", + "is_auth_token": true + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"inputs\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"inputs\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"eventName\",\n \"eventOrganizer\",\n \"externalAccountId\",\n \"externalEventId\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"startDateTime\": {\n \"type\": \"string\",\n \"description\": \"The start date and time of the marketing event.\",\n \"format\": \"date-time\"\n },\n \"customProperties\": {\n \"type\": \"array\",\n \"description\": \"A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.\\nIn order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.\\n\",\n \"items\": {\n \"required\": [\n \"name\",\n \"sourceUpstreamDeployable\",\n \"value\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\",\n \"description\": \"The ID of the property source indicating where it was created.\",\n \"example\": \"\"\n },\n \"selectedByUser\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the value was selected by a user.\",\n \"example\": false\n },\n \"sourceLabel\": {\n \"type\": \"string\",\n \"description\": \"A human-readable label.\",\n \"example\": \"\"\n },\n \"sourceUpstreamDeployable\": {\n \"type\": \"string\"\n },\n \"source\": {\n \"type\": \"string\",\n \"description\": \"The origin of the property value, such as \\\"IMPORT\\\" or \\\"API\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"UNKNOWN\",\n \"IMPORT\",\n \"API\",\n \"FORM\",\n \"ANALYTICS\",\n \"MIGRATION\",\n \"SALESFORCE\",\n \"INTEGRATION\",\n \"CONTACTS_WEB\",\n \"WAL_INCREMENTAL\",\n \"TASK\",\n \"EMAIL\",\n \"WORKFLOWS\",\n \"CALCULATED\",\n \"SOCIAL\",\n \"BATCH_UPDATE\",\n \"SIGNALS\",\n \"BIDEN\",\n \"DEFAULT\",\n \"COMPANIES\",\n \"DEALS\",\n \"ASSISTS\",\n \"PRESENTATIONS\",\n \"TALLY\",\n \"SIDEKICK\",\n \"CRM_UI\",\n \"MERGE_CONTACTS\",\n \"PORTAL_USER_ASSOCIATOR\",\n \"INTEGRATIONS_PLATFORM\",\n \"BCC_TO_CRM\",\n \"FORWARD_TO_CRM\",\n \"ENGAGEMENTS\",\n \"SALES\",\n \"HEISENBERG\",\n \"LEADIN\",\n \"GMAIL_INTEGRATION\",\n \"ACADEMY\",\n \"SALES_MESSAGES\",\n \"AVATARS_SERVICE\",\n \"MERGE_COMPANIES\",\n \"SEQUENCES\",\n \"COMPANY_FAMILIES\",\n \"MOBILE_IOS\",\n \"MOBILE_ANDROID\",\n \"CONTACTS\",\n \"ASSOCIATIONS\",\n \"EXTENSION\",\n \"SUCCESS\",\n \"BOT\",\n \"INTEGRATIONS_SYNC\",\n \"AUTOMATION_PLATFORM\",\n \"CONVERSATIONS\",\n \"EMAIL_INTEGRATION\",\n \"CONTENT_MEMBERSHIP\",\n \"QUOTES\",\n \"BET_ASSIGNMENT\",\n \"QUOTAS\",\n \"BET_CRM_CONNECTOR\",\n \"MEETINGS\",\n \"MERGE_OBJECTS\",\n \"RECYCLING_BIN\",\n \"ADS\",\n \"AI_GROUP\",\n \"COMMUNICATOR\",\n \"SETTINGS\",\n \"PROPERTY_SETTINGS\",\n \"PIPELINE_SETTINGS\",\n \"COMPANY_INSIGHTS\",\n \"BEHAVIORAL_EVENTS\",\n \"PAYMENTS\",\n \"GOALS\",\n \"PORTAL_OBJECT_SYNC\",\n \"APPROVALS\",\n \"FILE_MANAGER\",\n \"MARKETPLACE\",\n \"INTERNAL_PROCESSING\",\n \"FORECASTING\",\n \"SLACK_INTEGRATION\",\n \"CRM_UI_BULK_ACTION\",\n \"WORKFLOW_CONTACT_DELETE_ACTION\",\n \"ACCEPTANCE_TEST\",\n \"PLAYBOOKS\",\n \"CHATSPOT\",\n \"FLYWHEEL_PRODUCT_DATA_SYNC\",\n \"HELP_DESK\",\n \"BILLING\",\n \"DATA_ENRICHMENT\",\n \"AUTOMATION_JOURNEY\",\n \"MICROAPPS\",\n \"INTENT\",\n \"PROSPECTING_AGENT\",\n \"CENTRAL_EXCHANGE_RATES\",\n \"HELP_DESK_AI\",\n \"CONVERSATIONAL_ENRICHMENT\",\n \"CRM_PROCESSES_PLATFORM\",\n \"CLONE_OBJECTS\",\n \"MARKET_SOURCING\",\n \"DATASET\",\n \"PROPERTY_RESTORE\"\n ]\n },\n \"updatedByUserId\": {\n \"type\": \"integer\",\n \"description\": \"The ID of the user who updated the property.\",\n \"format\": \"int32\"\n },\n \"persistenceTimestamp\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"sourceMetadata\": {\n \"type\": \"string\",\n \"description\": \"Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`\",\n \"example\": \"\"\n },\n \"dataSensitivity\": {\n \"type\": \"string\",\n \"description\": \"The sensitivity level of the property, such as \\\"non_sensitive\\\", \\\"sensitive\\\", and \\\"highly_sensitive\\\".\",\n \"example\": \"\",\n \"enum\": [\n \"none\",\n \"standard\",\n \"high\"\n ]\n },\n \"sourceVid\": {\n \"type\": \"array\",\n \"description\": \"The unique identifier associated with the source.\",\n \"example\": \"\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n }\n },\n \"unit\": {\n \"type\": \"string\",\n \"description\": \"The unit of measurement or context for the value.\",\n \"example\": \"\"\n },\n \"requestId\": {\n \"type\": \"string\",\n \"description\": \"A unique ID associated with this request.\",\n \"example\": \"\"\n },\n \"isEncrypted\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the property value is encrypted.\",\n \"example\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name of custom property\",\n \"example\": \"\"\n },\n \"useTimestampAsPersistenceTimestamp\": {\n \"type\": \"boolean\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"Custom property value\",\n \"example\": \"\"\n },\n \"selectedByUserTimestamp\": {\n \"type\": \"integer\",\n \"description\": \"The timestamp when the value was selected by a user, if applicable.\",\n \"format\": \"int64\"\n },\n \"timestamp\": {\n \"type\": \"integer\",\n \"description\": \"When the value was set, as a 64-bit integer.\",\n \"format\": \"int64\"\n },\n \"isLargeValue\": {\n \"type\": \"boolean\"\n }\n },\n \"description\": \"Represents a single custom property of a marketing event, storing its name, value, metadata (like source, timestamp, and sensitivity), and related audit information for tracking changes.\"\n }\n },\n \"externalAccountId\": {\n \"type\": \"string\",\n \"description\": \"The accountId that is associated with this marketing event in the external event application.\"\n },\n \"eventCancelled\": {\n \"type\": \"boolean\",\n \"description\": \"Indicates if the marketing event has been cancelled. Defaults to `false`\"\n },\n \"eventOrganizer\": {\n \"type\": \"string\",\n \"description\": \"The name of the organizer of the marketing event.\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"description\": \"A URL in the external event application where the marketing event can be managed.\"\n },\n \"externalEventId\": {\n \"type\": \"string\",\n \"description\": \"The id of the marketing event in the external event application.\"\n },\n \"eventDescription\": {\n \"type\": \"string\",\n \"description\": \"The description of the marketing event.\"\n },\n \"eventName\": {\n \"type\": \"string\",\n \"description\": \"The name of the marketing event.\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Describes what type of event this is. For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`\"\n },\n \"eventCompleted\": {\n \"type\": \"boolean\"\n },\n \"endDateTime\": {\n \"type\": \"string\",\n \"description\": \"The end date and time of the marketing event.\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/hubspot_marketing_api/pyproject.toml b/toolkits/hubspot_marketing_api/pyproject.toml new file mode 100644 index 00000000..4258c885 --- /dev/null +++ b/toolkits/hubspot_marketing_api/pyproject.toml @@ -0,0 +1,61 @@ +[build-system] +requires = [ "hatchling",] +build-backend = "hatchling.build" + +[project] +name = "arcade_hubspot_marketing_api" +version = "0.1.0" +description = "Tools that enable LLMs to interact directly with the Hubspot Marketing API." +requires-python = ">=3.10" +dependencies = [ + "arcade-tdk>=3.0.0,<4.0.0", + "httpx[http2]>=0.27.2,<1.0.0", + "jsonschema>=4.0.0,<5.0.0", +] +[[project.authors]] +email = "support@arcade.dev" + + +[project.optional-dependencies] +dev = [ + "arcade-mcp[all]>=1.2.0,<2.0.0", + "arcade-serve>=3.0.0,<4.0.0", + "pytest>=8.3.0,<8.4.0", + "pytest-cov>=4.0.0,<4.1.0", + "pytest-mock>=3.11.1,<3.12.0", + "pytest-asyncio>=0.24.0,<0.25.0", + "mypy>=1.5.1,<1.6.0", + "pre-commit>=3.4.0,<3.5.0", + "tox>=4.11.1,<4.12.0", + "ruff>=0.7.4,<0.8.0", +] + +# Tell Arcade.dev that this package is a toolkit +[project.entry-points.arcade_toolkits] +toolkit_name = "arcade_hubspot_marketing_api" + +# Use local path sources for arcade libs when working locally +[tool.uv.sources] +arcade-mcp = { path = "../../", editable = true } +arcade-serve = { path = "../../libs/arcade-serve/", editable = true } +arcade-tdk = { path = "../../libs/arcade-tdk/", editable = true } +[tool.mypy] +files = [ "arcade_hubspot_marketing_api/**/*.py",] +python_version = "3.10" +disallow_untyped_defs = "True" +disallow_any_unimported = "True" +no_implicit_optional = "True" +check_untyped_defs = "True" +warn_return_any = "True" +warn_unused_ignores = "True" +show_error_codes = "True" +ignore_missing_imports = "True" + +[tool.pytest.ini_options] +testpaths = [ "tests",] + +[tool.coverage.report] +skip_empty = true + +[tool.hatch.build.targets.wheel] +packages = [ "arcade_hubspot_marketing_api",]